web-dev-qa-db-ja.com

起動時にそれらを実行する必要があるだけです。 Systemd

Ubuntu 19.04こんにちは、systemdにバグがありますlaunch-server.serviceファイルがあり、

[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

私の行動のアルゴリズムは次のとおりです:

  1. aborigen @ aborigenserver:/ etc/systemd/system $ Sudo nano launch-server.service

それにより、このファイルを作成し、上記のパラメーターを貼り付けます

  1. aborigen @ aborigenserver:/ etc/systemd/system $ Sudo systemctl daemon-reload
  2. aborigen @ aborigenserver:/ etc/systemd/system $ Sudo systemctl status launch-server.serviceと応答:

●launch-server.service-LaunchServer Lost Paradise
ロード済み:ロード済み(/etc/systemd/system/launch-server.service;無効;ベンダープリセット:有効)
アクティブ:非アクティブ(デッド)

  1. aborigen @ aborigenserver:/ etc/systemd/system $ Sudo systemctl enable launch-server.service

シンボリックリンク/etc/systemd/system/multi-user.target.wants/launch-server.service→/ etc/systemd/system/launc h-server.serviceを作成しました。

  1. aborigen @ aborigenserver:/ etc/systemd/system $ Sudo systemctl status launch-server.service

●launch-server.service-LaunchServer Lost Paradise
ロード済み:ロード済み(/etc/systemd/system/launch-server.service; enabled;ベンダープリセット:有効)アクティブ:非アクティブ(デッド)

  1. aborigen @ aborigenserver:/ etc/systemd/system $ Sudo systemctl start launch-server.service

サービスがユニット構成に必要な手順を実行しなかったため、launch-server.serviceのジョブが失敗しました。詳細については、「systemctl status launch-server.service」および「journalctl -xe」を参照してください。

  1. aborigen @ aborigenserver:/ etc/systemd/system $ 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.
  1. aborigen @ aborigenserver:/ etc/systemd/system $ journalctl -xe

最終的に:

-- Назначен автоматический перезапуск юнита 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.

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

それに応じて:

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.

もう二日目、頭から髪を抜いた。起動時に実行するだけです。助けてください :)

1
Andry Kritsun

最初に、まったく同じコマンドがターミナルで実行されているかどうかを再確認します。次に、サービスが失敗した場合、すぐに再起動しないこともありますが、しばらく待つこともあります。したがって、数秒ごとに再起動すると問題が発生します。特定の時間内に障害が多すぎる場合、サービスは永続的に停止されます。

これはすべてUnitセクションで構成されており、このことはすべてご存知でしょう。したがって、注意深く見れば、いくつかのsurprisesが含まれているUnitセクションの例を紹介します。

[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

これが役立つと確信しています。 (ヒント!秒=)

0
Marc

Active: failed (Result: protocol)(code=exited, status=0/SUCCESS)があり、systemd execコマンドでバックグラウンドプロセスを実行していることを示しています。

screenコマンドをコンソールで実行すると、バックグラウンドで実行されますか?それはそれを説明するはずです。

Type=forkingを使用してみてください。問題が解決するはずです。

または、フォアグラウンドでscreenコマンドを実行します。ただし、systemdユニットはターミナルなしで実行されているため、画面に障害が発生する可能性があるため、「アタッチ」は期待どおりに機能しない可能性があります...おそらくType=forkingはこれをここで解決する最良の方法...

0
filbranden