这里我有一个部署到linux的应用程序,我希望该应用程序在linux启动时自动启动。我正在使用类似'sudo ./start'
启动应用程序的命令。我怎样才能做到这一点?
操作系统:CentOS 6
答案1
我不建议在/etc/rc.local
.这是旧 Unix 时代的遗物。有些 Linux 不再支持rc.local
.
但是,它可能会正确启动您的应用程序/服务,但它永远不会优雅地关闭您的进程。
最好使用系统自己的初始化脚本机制(系统,暴发户,...)。我会编写一个如下所示的 rc 脚本(您的系统上可能有一个骨架/模板/etc/init.d/skeleton
):
#!/bin/bash
. /etc/init.d/functions
start() {
echo -n "Starting <servicename>: "
#/path/to/the/executable/of/your/application
}
stop() {
echo -n "Shutting down <servicename>: "
#command_to_gracefully_end_the_application
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
#command_to_report_the_status
;;
restart)
stop
start
;;
*)
echo "Usage: <servicename> {start|stop|restart}"
exit 1
;;
esac
exit $?
将脚本放入 /etc/init.d/ 中,使其可执行并将其添加到系统中运行级别3、4 和 5:
chkconfig --level 345 <servicename> on
您也可以手动启动和停止它:
service <servicename> start
service <servicename> stop
答案2
/etc/rc.local
大多数 Linux在系统启动时运行一次。使用编辑器打开此文件并添加命令以启动您的应用程序。
sudo
由于脚本以 root 身份运行,因此无需在命令前添加前缀。
请务必在命令末尾添加“&”(与号)以在后台运行它,这样在应用程序无法一次性完成的情况下,它就不会阻止系统启动。
myscript
执行位于的文件的示例/usr/local/bin/
# place near the end of /etc/rc.local
/usr/local/bin/myscript &
答案3
使用 cron 对我有用。
# enter crontab edit
crontab -e
# place this inside the cron file you opened with the previous command
@reboot /path/to/your/script.sh