Je veux démarrer le démon Zookeeper après le démarrage du serveur Ubuntu 16.04 (et non après la journalisation) sous l'utilisateur nommé zookeeper . J'ai donc changé le fichier /etc/rc.local
comme suit:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
echo 'never'; defrag_file_pathname
su -c '$ZOOKEEPER_HOME/bin/zkServer.sh start' zookeeper &
exit 0
, en ajoutant la ligne su -c '$ZOOKEEPER_HOME/bin/zkServer.sh start' zookeeper &
avant exit 0
. Mais le processus n'est pas démarré après le redémarrage!
Quel est le problème ici?
détails: L'utilisateur zookeeper est dans Sudo groupe et a un mot de passe.
détails: Lorsque j'exécute la commande su -c '$ZOOKEEPER_HOME/bin/zkServer.sh start' zookeeper &
dans un terminal, elle nécessite un mot de passe pour s'exécuter.
Créez un fichier .service
dans /etc/systemd/system/Zoo.service
et ajoutez les lignes suivantes:
[Unit]
Description=Zookeeper Daemon
Wants=syslog.target
[Service]
Type=forking
WorkingDirectory=/path/to/dir/of/interest
User=zookeeper
ExecStart=/home/zookeeper_home/bin/zkServer.sh
TimeoutSec=30
Restart=on-failure
[Install]
WantedBy=multi-user.target
Maintenant, configurez le service:
Sudo systemctl start Zoo
Sudo systemctl enable Zoo
Vérifier l'état:
Sudo systemctl status Zoo
Veuillez lire pour plus de détails créant des démons:
https://www.freedesktop.org/software/systemd/man/systemd.unit.html