使应用程序自动启动

使应用程序自动启动

这里我有一个部署到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

相关内容