如何运行程序,并在远程控制台断开连接时继续运行

如何运行程序,并在远程控制台断开连接时继续运行

我想运行我的 Java 程序,但即使我关闭 Putty,它也需要继续运行。该程序正在我的 Raspberry pi 上运行,并且启动完全正常,但是一旦我关闭控制台,该程序就会停止。

目前我用 sh 脚本和其中的这一行进行了尝试:

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

答案1

您忘记说明您在这里运行的操作系统/发行版。假设它是使用 systemd 的东西,然后在 /etc/systemd/system 中添加一个新文件(例如 pantabot.service),其中包含类似...

[Unit]
Description=pantabot

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

SuccessExitStatus=143

自动管理日志文件通常是一个很好的做法 - 将以下内容添加到 [Service] 部分会将日志添加到您现有的(轮换的)日志文件中......

StandardOutput=syslog
StandardError=syslog

但您也可以将其发送到特定文件。

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

完成后,运行systemctl daemon-reload然后使用 systemctl start pantabot / systemctl stop pantabot 来控制它。

最后,如果您附加

[Install]
WantedBy=multi-user.target

并运行systemctl enable pantabot它会在您启动主机时自动启动。

相关内容