Ubuntu 19.04 Salut, j'ai un bogue avec systemd J'ai un fichier launch-server.service qui a
[Unit]
Description=LaunchServer
After=network.target
[Service]
WorkingDirectory=/home/aborigen/Launcher/LaunchServer/build/libs
Type=notify
User=aborigenserver
Group=Sudo
NotifyAccess=all
Restart=always
ExecStart=/usr/bin/screen -DmS launchserver /usr/Java/jdk1.8.0_221/bin/Java -Xmx128M -javaagent:LaunchServer.jar -jar LaunchServer.jar
ExecStop=/usr/bin/screen -p 0 -S launchserver -X eval 'stuff "stop"\015'
[Install]
WantedBy=multi-user.target
L'algorithme de mes actions est le suivant:
Sudo nano launch-server.service
créant ainsi ce fichier et collant les paramètres ci-dessus
Sudo systemctl daemon-reload
Sudo systemctl status launch-server.service
et en réponse:● launch-server.service - LaunchServer Lost Paradise
Chargé: chargé (/etc/systemd/system/launch-server.service; désactivé; préréglage fournisseur: activé)
Actif: inactif (mort)
Sudo systemctl enable launch-server.service
Créé le lien symbolique /etc/systemd/system/multi-user.target.wants/launch-server.service →/etc/systemd/system/launc h-server.service.
Sudo systemctl status launch-server.service
● launch-server.service - LaunchServer Lost Paradise
Chargé: chargé (/etc/systemd/system/launch-server.service; activé; préréglage fournisseur: activé) Actif: inactif (mort)
Sudo systemctl start launch-server.service
Le travail pour launch-server.service a échoué car le service n'a pas effectué les étapes requises par la configuration de son unité. Voir "systemctl status launch-server.service" et "journalctl -xe" pour plus de détails.
Sudo systemctl status launch-server.service
aborigen @ aborigenserver:/etc/systemd/system $ Sudo systemctl status launch-server.service
● launch-server.service - LaunchServer Lost Paradise
Loaded: loaded (/etc/systemd/system/launch-server.service; enabled; vendor preset: enabled)
Active: failed (Result: protocol) since Mon 2019-07-29 12:45:50 EEST; 2h 49min ago
Main PID: 2496 (code=exited, status=0/SUCCESS)
июл 29 12:45:50 aborigenserver systemd[1]: launch-server.service: Service RestartSec=100ms expired, scheduling restart.
июл 29 12:45:50 aborigenserver systemd[1]: launch-server.service: Scheduled restart job, restart counter is at 5.
июл 29 12:45:50 aborigenserver systemd[1]: Stopped LaunchServer Lost Paradise.
июл 29 12:45:50 aborigenserver systemd[1]: launch-server.service: Start request repeated too quickly.
июл 29 12:45:50 aborigenserver systemd[1]: launch-server.service: Failed with result 'protocol'.
июл 29 12:45:50 aborigenserver systemd[1]: Failed to start LaunchServer Lost Paradise.
aborigen@aborigenserver:/etc/systemd/system$ chmod +x /home/aborigen/Server/start.sh
aborigen@aborigenserver:/etc/systemd/system$ Sudo systemctl start start-server.service
aborigen@aborigenserver:/etc/systemd/system$ Sudo systemctl reload start-server.service
Failed to reload start-server.service: Job type reload is not applicable for unit start-server.service.
journalctl -xe
finalement:
-- Назначен автоматический перезапуск юнита launch-server.service, так как для него был задан
-- параметр Restart=.
июл 29 12:45:50 aborigenserver systemd[1]: Stopped LaunchServer Lost Paradise.
-- Subject: Завершена остановка юнита launch-server.service.
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Процесс остановки юнита launch-server.service был завершен.
июл 29 12:45:50 aborigenserver systemd[1]: launch-server.service: Start request repeated too quickly.
июл 29 12:45:50 aborigenserver systemd[1]: launch-server.service: Failed with result 'protocol'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The unit launch-server.service has entered the 'failed' state with result 'protocol'.
июл 29 12:45:50 aborigenserver systemd[1]: Failed to start LaunchServer Lost Paradise.
-- Subject: Ошибка юнита launch-server.service
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Произошел сбой юнита launch-server.service.
--
-- Результат: failed.
J'ai également start-server.service
[Unit]
Description=Lost Paradise Server
After=network.target
After=launch-server.service
[Service]
WorkingDirectory=/home/aborigen/Server/
User=aborigenserver
Group=Sudo
Restart=always
ExecStart=/home/aborigen/Server/start.sh
ExecStop=/usr/bin/screen -p 0 -S ServerAstrey -X eval 'stuff "stop"\015'
[Install]
WantedBy=multi-user.target
qui en conséquence:
aborigen @ aborigenserver:/etc/systemd/system $ Sudo systemctl status start-server.service
● start-server.service - Lost Paradise Server
Loaded: loaded (/etc/systemd/system/start-server.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2019-07-29 15:39:26 EEST; 20min ago
Process: 3427 ExecStart=/home/aborigen/Server/start.sh (code=exited, status=1/FAILURE)
Main PID: 3427 (code=exited, status=1/FAILURE)
июл 29 15:39:26 aborigenserver systemd[1]: start-server.service: Service RestartSec=100ms expired, scheduling restart.
июл 29 15:39:26 aborigenserver systemd[1]: start-server.service: Scheduled restart job, restart counter is at 5.
июл 29 15:39:26 aborigenserver systemd[1]: Stopped Lost Paradise Server.
июл 29 15:39:26 aborigenserver systemd[1]: start-server.service: Start request repeated too quickly.
июл 29 15:39:26 aborigenserver systemd[1]: start-server.service: Failed with result 'exit-code'.
июл 29 15:39:26 aborigenserver systemd[1]: Failed to start Lost Paradise Server.
Déjà le deuxième jour, je tire les cheveux de ma tête. J'ai juste besoin de les exécuter au démarrage. Aidez-moi, s'il vous plaît :)
Vérifiez à nouveau si la même commande est en cours d'exécution dans le terminal. N'oubliez pas que si le service échoue, il ne redémarre parfois pas immédiatement mais attend parfois un certain temps. Le redémarrage toutes les quelques secondes va donc poser des problèmes. S'il y a trop de pannes dans un certain délai, le service est arrêté définitivement.
Tout cela est configuré dans la section Unité et tout cela, je suis sûr que vous le savez déjà. Par conséquent, je vais vous donner un exemple d'une section d'unité de travail qui a quelques surprises si vous la regardez attentivement.
[Unit]
Description=Radmon service
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=30
User=marc
ExecStart=/usr/bin/python -u /home/marc/GMC/pyradmon.py
StandardOutput=null
StandardError=inherit
[Install]
WantedBy=multi-user.target
Je suis sûr que cela vous aidera. (Indice! Sec =)
Vous avez Active: failed (Result: protocol)
et (code=exited, status=0/SUCCESS)
, qui suggère que vous exécutez un processus d'arrière-plan dans la commande systemd exec.
Si vous exécutez votre commande screen
sur une console, se met-elle en arrière-plan? Cela devrait l'expliquer.
Essayez d'utiliser Type=forking
, cela devrait le résoudre.
Sinon, exécutez votre commande screen
au premier plan, bien que "l'attachement" puisse ne pas fonctionner comme prévu, car une unité systemd fonctionne sans terminal, donc l'écran peut échouer à ce niveau ... Peut-être Type=forking
est le meilleur moyen de résoudre celui-ci ici ...