如何在启动时/启动后运行我的 Java 应用程序?

如何在启动时/启动后运行我的 Java 应用程序?

大家好,我对这些都很陌生,所以请耐心等待。我创建了这个 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,即javawget

但是,如果您尝试以受限用户身份(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

相关内容