Je suis en train d'utiliser systemd
pour démarrer un programme au démarrage et le maintenir en fonctionnement en arrière-plan.
J'ai écrit un script simple pour que systemd
l'appelle et le script affichera plusieurs lignes de journaux que j'aimerais voir dans le terminal.
J'ai donc défini StandardOutput=journal+console
dans la configuration du service mais je n'ai pas pu voir les sorties ni dans le terminal ni dans le journal.
frederick@Frederick-PC:~$ sudo systemctl start my_program.service
frederick@Frederick-PC:~$ journalctl _SYSTEMD_UNIT=my_program.service
Aucun fichier journal trouvé.
-- Aucune entrée --
Et voici la configuration de mon service et le script.
/etc/systemd/system/my_program.service
[Unit]
Description=Démarrer le client my_program après le démarrage du système
[Service]
Type=forking
ExecStart=/usr/bin/my_program.sh start
ExecStop=/usr/bin/my_program.sh stop
PIDFile=/run/my_program.pid
WorkingDirectory=/home/frederick/Applications/my_program-go/
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target
/usr/bin/my_program.sh
#!/bin/sh
start() {
if [ -f /run/my_program.pid ]; then
kill -0 $(cat /run/my_program.pid) > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "my_program est déjà démarré"
exit 1
fi
fi
echo -n "Démarrage de my_program... "
nohup /home/frederick/Applications/my_program-go/my_program-local -c /home/frederick/Applications/my_program-go/config.json >> /home/frederick/Applications/my_program-go/my_program.log 2>&1 &
if [ $? -gt 0 ]; then
echo "échec"
rm /run/my_program.pid > /dev/null 2>&1
else
echo $! | tee /run/my_program.pid
fi
}
stop() {
if [ -f /run/my_program.pid ]; then
echo -n "Arrêt de my_program... "
msg=$(kill $(cat /run/my_program.pid) 2>&1)
if [ $? -gt 0 ]; then
echo "échec"
echo $msg
else
rm /run/my_program.pid > /dev/null 2>&1
echo "réussi"
fi
else
echo "my_program n'est pas démarré"
fi
}
restart() {
stop
start
}
case $1 in
start|stop|restart)
"$1"
;;
*)
echo "Opération inconnue"
exit 1
;;
esac
Comment puis-je voir ces lignes imprimées par echo
dans le script? S'il vous plaît aidez-moi, merci.