Linux 几种常见的自启动方式

news/2024/10/21 10:05:00/

  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 INFOPATH=/sbin:/bin:/usr/sbin:/usr/bin. /lib/lsb/init-functionsDAEMON=/usr/sbin/ntpd
PIDFILE=/var/run/ntpd.pidtest -x $DAEMON || exit 0if [ -r /etc/default/ntp ]; then. /etc/default/ntp
fiif [ -e /run/ntp.conf.dhcp ]; thenNTPD_OPTS="$NTPD_OPTS -c /run/ntp.conf.dhcp"
fiRUNASUSER=ntp
UGID=$(getent passwd $RUNASUSER | cut -f 3,4 -d:) || true
if test "$(uname -s)" = "Linux"; thenNTPD_OPTS="$NTPD_OPTS -u $UGID"
ficase $1 instart)log_daemon_msg "Starting NTP server" "ntpd"if [ -z "$UGID" ]; thenlog_failure_msg "user \"$RUNASUSER\" does not exist"exit 1fistart-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --startas $DAEMON -- -p $PIDFILE $NTPD_OPTSlog_end_msg $?;;stop)log_daemon_msg "Stopping NTP server" "ntpd"start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE --retry=TERM/30/KILL/5 --exec $DAEMONlog_end_msg $?rm -f $PIDFILE;;restart|force-reload)$0 stop && sleep 2 && $0 start;;try-restart)if $0 status >/dev/null; then$0 restartelseexit 0fi;;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  查看状态


http://www.ppmy.cn/news/2672.html

相关文章

【畅购商城】内网穿透之EchoSite

目录 概述 注册用户 抢注域名 ​​​​​​​下载客户端 ​​​​​​​编写配置文件 ​​​​​​​启动 ​​​​​​​访问 ​​​​​​​概述 EchoSite一款收费的内网映射工具(已下架) 花生壳:内网穿透工具,免费版…

js学习笔记

1.js代码要写在script标签中 <script type"text/javascript">for (let i0;i<5;i){document.write("<h1 stylecolor:red;>hello world</h1>")} </script>2.可以通过src的方式指定读取js文件进来&#xff0c;注意如果用这种方式…

Java#33(IO流)

目录 一.IO流 作用: (对于程序而言)用于读写数据(本地数据, 网络数据) 二.IO流体系 1.字节输出流 2.字节输入流 3.文件拷贝 3.字符集 字符流 字符输入流 字符输出流 缓冲流 转换流 序列化流 ​编辑反序列流 打印流 一.IO流 I: input O: output 流: 想流…

C#学习记录——软件工程师必备素养与技能

『聪明是一种天赋&#xff0c;而善良是一种选择。』—— 网络 1、软件工程师的基本素养 2、个人素质必修课程 3、项目开发流程 具备了良好的个人素质和基础的编程知识&#xff0c;作为一名优秀的开发人员&#xff0c;还应熟悉一个软件项目怎么开展工作&#xff0c;这就是项目…

C/C++入门002-C语言组成

文章目录1. C工程创建1.1 基于Code::Blocks创建工程1.2 Code::Blocks界面设置2. C语言程序组成2.1函数2.1.1 主函数2.1.2 其它函数2.1.3 如何执行定义好的函数2.2 输出函数printf2.2.1 编译输出为exe可执行文件2.3 C语言要求2.3.1 注释2.4 C语言程序练习2.4.1 输出三角形代码1&…

java-net-php-python-jsp健身俱乐部管理系统演示录像计算机毕业设计程序

java-net-php-python-jsp健身俱乐部管理系统演示录像计算机毕业设计程序 java-net-php-python-jsp健身俱乐部管理系统演示录像计算机毕业设计程序本源码技术栈&#xff1a; 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 开发软件&#xff1a;idea eclipse 前…

数据库设计(一)

目录 数据库设计的基本概念&#xff1a; 数据库设计包括以下几个部分&#xff1a; 需求设计&#xff1a; 1、数据&#xff1a; 2、处理&#xff1a; 概念结构设计&#xff1a; 实体&#xff1a; 例如&#xff1a; 联系类型&#xff1a; 1、一对一&#xff1a; 2、一对多&a…

Generative Cooperative Learning for Unsupervised Video Anomaly Detection

介绍 在现实世界中&#xff0c;基于学习的异常检测任务极具挑战性&#xff0c;这主要是因为此类事件很少发生。由于这些事件的无约束性质&#xff0c;这一挑战进一步加剧。因此&#xff0c;获取足够的异常示例是相当麻烦的&#xff0c;而人们可以安全地假设&#xff0c;将永远…