リモートコンソールが切断されたときにプログラムを実行して実行を続ける方法

リモートコンソールが切断されたときにプログラムを実行して実行を続ける方法

Javaプログラムを実行したいのですが、Puttyを閉じても引き続き実行する必要があります。プログラムは私のRaspberry piで実行されており、完全に起動しますが、コンソールを閉じるとすぐにプログラムが停止します。

現在、私はshスクリプトとその中に次の行を使用してみました。

nohup java -jar /home/pi/Programms/PantaBot/PantaBot.jar > /var/log/logPantaBot.txt 2>&1 &

答え1

ここで実行しているOS/配布版を指定するのを忘れました。 systemdエントリを使用しているとし、/etc/systemd/systemに次の新しいファイル(pantabot.serviceなど)を追加します。

[Unit]
Description=pantabot

[Service]
ExecStart=/usr/bin/java \
  -jar /home/pi/Programms/PantaBot/PantaBot.jar 

SuccessExitStatus=143

通常、ログファイルを自動的に管理することをお勧めします。 [サービス]セクションに以下を追加すると、既存の(回転した)ログファイルにログが追加されます。

StandardOutput=syslog
StandardError=syslog

ただし、特定のファイルに送信することもできます。

StandardOutput=append:var/log/logPantaBot.txt
StandardError=append:var/log/logPantaBot.txt

完了したら実行し、systemctl daemon-reloadsystemctl start pantabot/systemctl stop pantabot を使用して制御します。

最後に追加すると

[Install]
WantedBy=multi-user.target

systemctl enable pantabotコンソールを起動すると、実行が自動的に開始されます。

関連情報