在服务器启动时运行应用程序

时间:2017-08-12 05:25:34

标签: linux bash shell ubuntu startup

我有问题。 lsb_release -a结果

没有可用的LSB模块。
分销商ID:Ubuntu
描述:Ubuntu 17.04发布:17.04代号:zesty

这是我的自动启动脚本: start-app

#!/bin/bash
### BEGIN INIT INFO
# Provides:          data exchange
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: Start data exchange service...
### END INIT INFO
echo 'after reboot' > /home/forte/test.txt
java -cp /home/forte/apps/data-exchange-service-1.0.jar org.springframework.boot.loader.JarLauncher &
exit 0

创建后我提供了执行权限

chmod +x start-app

然后我将此脚本移到 /etc/init.d 下并执行

update-rc.d start-app defaults
update-rc.d start-app enable

我查看 rc * .d 文件夹,我的脚本链接位于[2,3,4,5]

但是当我重新启动服务器时,它不会运行我的应用程序。

我也尝试了 crontab

@reboot /home/forte/apps/start-app

但它们都不起作用 还有其他办法吗?

额外注意 当我执行

/etc/init.d/start-app start

我的应用正常工作

1 个答案:

答案 0 :(得分:0)

你可以创建一个systemd单元,与init.d几乎相同,但由于ubuntu使用systemd作为init,这可能会更有帮助。

以下是有关systemd单位的一些信息的链接。

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Managing_Services_with_systemd-Unit_Files.html

希望它有所帮助,