linux实现开机自启动脚本

Posted singularity

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux实现开机自启动脚本相关的知识,希望对你有一定的参考价值。

Linux下(以RedHat为范本)添加开机自启动脚本有两种方法,先来简单的;

一、在/etc/rc.local中添加
如果不想将脚本粘来粘去,或创建链接什么的,
则:
step1. 先修改好脚本,使其所有模块都能在任意目录启动时正常执行;
step2. 再在/etc/rc.local的末尾添加一行以绝对路径启动脚本的行;
如:
$ vim /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don\'t
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
. /etc/rc.d/rc.tune
/opt/pjt_test/test.pl

保存并退出;
再重启动测试下,则在其它的程序都启动完成后,将启动脚本;

二、init.d目录下都为可执行程序,他们其实是服务脚本,按照一定格式编写,Linux 在启动时会自动执行,类似Windows下的服务

用root帐号登录,vi /etc/rc.d/init.d/mystart,追加如下内容:

#!/bin/bash
#chkconfig:2345 80 05 --指定在哪几个级别执行,0一般指关机,
6指的是重启,其他为正常启动。80为启动的优先级,05为关闭的优先机
#description:mystart service
RETVAL=0
start(){ --启动服务的入口函数
echo -n "mystart serive ..."
cd /home/test1
su test1 -c "python /home/test1/test.py"

}

stop(){ --关闭服务的入口函数
echo "mystart service is stoped..."
}

case $1 in --使用case,可以进行交互式操作
start)
start
;;
stop)
stop
;;
esac
exit $RETVAL

3、运行chmod +r /etc/rc.d/init.d/mystart,使之可直接执行

4、运行chkconfig --add mystart,把该服务添加到配置当中

 

5、运行chkconfig --list mystart,可以查看该服务进程的状态

 

 

例子:

#!/bin/bash
#chkconfig:2345 80 05 --指定在哪几个级别执行,0一般指关机,6指的是重启,其他为正常启动。80为启动的优先级,05为关闭的优先机
#description:mqtt service
RETVAL=0
start(){
echo -n "mqtt serive ..."
cd /home/dpf
su dpf -c "./hwjc_udp_receive &"

}

stop(){
echo "mqtt service is stoped..."
}

case $1 in
start)
start
;;
stop)
stop
;;
esac
exit $RETVAL

3、运行chmod +r /etc/rc.d/init.d/mqtt,使之可直接执行

 

4、运行chkconfig --add mqtt,把该服务添加到配置当中

 

5、运行chkconfig --list mqtt,可以查看该服务进程的状态

即可重启系统,

查看C程序是否自动启动

 

以上是关于linux实现开机自启动脚本的主要内容,如果未能解决你的问题,请参考以下文章

Linux配置开机自启动执行脚本都有哪些方法

开机自启脚本

Linux开机自启应用&开机执行脚本&监听端口应用挂掉了执行启动脚本

CentOS7 设置开机自启动脚本

Linux实现开机自动运行普通用户脚本

树莓派进阶之路 (033) - 开机启动自定义脚本