大家好,我对这些都很陌生,所以请耐心等待。我创建了这个 bash 文件,如下所示:
rm /home/ubuntu/test.jar
wget http://mywebsite.com/test.jar
java -jar test.jar
现在我已将该文件放在许多不同的地方,运行一些更新程序,甚至使用@reboot 函数创建了一个 cron 作业。
无论如何,java 程序实际上从未启动。
现在,这是一个没有 GUI 的 Amazon Web Services 无头 Ubuntu 服务器,只有 SSH 访问权限,所以我必须通过命令行来执行此操作,并让它作为某种守护进程运行。非常感谢您的帮助!
答案1
将这些行放入/etc/rc.local
将是另一种选择。(在较新版本的 Ubuntu 中,/etc/rc.local
默认情况下不存在,因此您必须创建它。如果它存在,它仍会在启动时使用。)
您还应该尝试提供不直接位于 中的可执行文件的完整路径/bin
,即java
和wget
。
但是,如果您尝试以受限用户身份(ubuntu
?)而不是 来运行此命令root
,那么使用/etc/rc.local
可能不是最好的方法,因为 中的命令/etc/rc.local
是以 的身份运行的root
。
不过,您可以以/etc/rc.local
非用户身份运行脚本root
(假设您具有管理权限,因此可以创建/编辑/etc/rc.local
)。如果您要运行的脚本是/home/ubuntu/runtest
,您想以用户身份运行它ubuntu
,并且您坚持使用运行它bash
,那么您可以将此行添加到末尾/etc/rc.local
:
/usr/bin/sudo -u ubuntu bash /home/ubuntu/runtest > /dev/null