我有一个。罐我这样运行的文件:
java -jar server.jar 4242
所以我有一个脚本java-server.sh启动它:
#!/bin/sh
java -jar server.jar 4242 &
server.jar 应该在系统启动时开始工作,所以我尝试了:
- 添加@reboot /home/user/java-server.sh到crontab -e
- 添加bash java-server.sh || 1号出口到本地文件
- 添加java-server.sh到/etc/init.d
没有一个有效。如果我登录系统并启动我的脚本,我就会像发条一样工作,直到我注销。这里有什么问题?
答案1
您应该调用脚本的完整路径,例如放入/etc/rc.local
:
bash /usr/local/bin/java-server.sh > /tmp/java-server.log 2>&1
如果您的脚本位于/usr/local/bin
,当然...这还将创建一个日志文件来调试其他潜在问题。 (请注意,在生产中,出于安全原因,您不应该在 /tmp 中创建此类日志文件,而应在具有适当权限、保留和日志轮换的 /var/log 中创建此类日志文件,但这出于回答目的而进行了简化)