irpas技术客

Linux 几种常见的自启动方式_juelianhuayao

大大的周 6311

? 1、rc.local

? ? ?直接在/etc/rc.loacl文件中编辑需要开机自启动的脚本或程序,注意启动代码要放在exit之前,并且使用&符号后台执行,否则如果是死循环脚本或者程序的话就会卡住。因为是root权限启动的,所有执行权限比较高,缺点是如果系统是普通用户登录的,就无法自启动图形界面程序。

?2、profile

? ??直接在/etc/profile文件中编辑需要开机自启动的脚本或程序,如果系统是普通用户登录的,则执行权限比较低,无法执行一些需要root权限的操作。同时,每次通过ssh远程登录系统时,都会执行一遍/etc/profile。

3. /etc/init.d

? ? 执行runlevel指令确定系统运行等级。

/etc/rc4.d $ runlevel N 5

在/etc/init.d目录下创建sh脚本用来启动或停止程序,具体试例如下

#!/bin/sh ### BEGIN INIT INFO # Provides: ntp # Required-Start: $network $remote_fs $syslog # Required-Stop: $network $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: Start NTP daemon ### END INIT INFO PATH=/sbin:/bin:/usr/sbin:/usr/bin . /lib/lsb/init-functions DAEMON=/usr/sbin/ntpd PIDFILE=/var/run/ntpd.pid test -x $DAEMON || exit 0 if [ -r /etc/default/ntp ]; then . /etc/default/ntp fi if [ -e /run/ntp.conf.dhcp ]; then NTPD_OPTS="$NTPD_OPTS -c /run/ntp.conf.dhcp" fi RUNASUSER=ntp UGID=$(getent passwd $RUNASUSER | cut -f 3,4 -d:) || true if test "$(uname -s)" = "Linux"; then NTPD_OPTS="$NTPD_OPTS -u $UGID" fi case $1 in start) log_daemon_msg "Starting NTP server" "ntpd" if [ -z "$UGID" ]; then log_failure_msg "user \"$RUNASUSER\" does not exist" exit 1 fi start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --startas $DAEMON -- -p $PIDFILE $NTPD_OPTS log_end_msg $? ;; stop) log_daemon_msg "Stopping NTP server" "ntpd" start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE --retry=TERM/30/KILL/5 --exec $DAEMON log_end_msg $? rm -f $PIDFILE ;; restart|force-reload) $0 stop && sleep 2 && $0 start ;; try-restart) if $0 status >/dev/null; then $0 restart else exit 0 fi ;; reload) exit 3 ;; status) status_of_proc $DAEMON "NTP server" ;; *) echo "Usage: $0 {start|stop|restart|try-restart|force-reload|status}" exit 2 ;; esac

然后在/etc/rc5.d目录下创建软连接指向刚才创建的sh脚本

sudo ln -s ../init.d/xxxx.sh S90XXXXX

其中文件名中的S和K分别代表start和stop,数字代表执行顺序。

4. systemclt

编写xxxx.service文件,可以参考链接https://blog.csdn.net/u012206617/article/details/121472600

将其存放在/usr/lib/systemd/system目录下

1) 第一步需要先执行这个命令来重载服务

systemctl daemon-reload

2) 开机启动服务

systemctl enable xxxx

3) 去掉开机启动服务

systemctl disable xxxx

4) 服务相关操作

systemctl start xxxx? 启动

systemctl stop xxxx? 停止

systemctl restart xxxx 重启

systemctl status xxxx? 查看状态


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Linux #几种常见的自启动方式 #linux自启动的多种方式