web-dev-qa-db-fra.com

Comment démarrer un démon Zookeeper après avoir démarré sous un utilisateur spécifique sur le serveur Ubuntu 16.04

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.

1
Soheil Pourbafrani

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

3
George Udosen