Linux添加开机自启动应用
一、概念介绍
1.1 开机启动脚本存放目录
通常开机启动脚本都在/etc/init.d 目录,如下图:
/etc/init.d # ls -al
total 328
drwxr-xr-x 2 1023 1023 5792 Apr 12 2022 .
drwxr-xr-x 27 1023 1023 5800 Apr 12 2022 ..
-rwxr-xr-x 1 1023 1023 3340 Apr 12 2022 adbd
-rwxr-xr-x 1 1023 1023 250 Apr 12 2022 alignment.sh
-rwxr-xr-x 1 1023 1023 492 Apr 12 2022 banner.sh
-rwxr-xr-x 1 1023 1023 1997 Apr 12 2022 bootlogd
-rwxr-xr-x 1 1023 1023 1922 Apr 12 2022 bootmisc.sh
-rwxr-xr-x 1 1023 1023 189 Apr 12 2022 bsp_paths.sh
-rwxr-xr-x 1 1023 1023 681 Apr 12 2022 busybox-cron
-rwxr-xr-x 1 1023 1023 3637 Apr 12 2022 checkroot.sh
-rwxr-xr-x 1 1023 1023 203 Apr 12 2022 chgrp-diag
-rwxr-xr-x 1 1023 1023 982 Apr 12 2022 data-init
-rwxr-xr-x 1 1023 1023 2887 Apr 12 2022 dbus-1
-rwxr-xr-x 1 1023 1023 587 Apr 12 2022 devpts.sh
-rwxr-xr-x 1 1023 1023 353 Apr 12 2022 dmesg.sh
-rwxr-xr-x 1 1023 1023 933 Apr 12 2022 dnsmasq
-rwxr-xr-x 1 1023 1023 3474 Apr 12 2022 find_partitions.sh
-rwxr-xr-x 1 1023 1023 1732 Apr 12 2022 firmware-links.sh
lrwxrwxrwx 1 1023 1023 33 Apr 12 2022 functions -> /etc/init.d/functions.initscripts
-rw-r--r-- 1 1023 1023 2141 Apr 12 2022 functions.initscripts
-rwxr-xr-x 1 1023 1023 510 Apr 12 2022 halt
-rwxr-xr-x 1 1023 1023 580 Apr 12 2022 hostname.sh
-rwxr-xr-x 1 1023 1023 2541 Apr 12 2022 hwclock.sh
-rwxr-xr-x 1 1023 1023 579 Apr 12 2022 inetd.busybox
-rwxr-xr-x 1 1023 1023 295 Apr 12 2022 init_irsc_util
-rwxr-xr-x 1 1023 1023 348 Apr 12 2022 keymap.sh
-rwxr-xr-x 1 1023 1023 168 Apr 12 2022 modem-shutdown
-rwxr-xr-x 1 1023 1023 1223 Apr 12 2022 modutils.sh
-rwxr-xr-x 1 1023 1023 859 Apr 12 2022 mountall.sh
-rwxr-xr-x 1 1023 1023 1522 Apr 12 2022 mountnfs.sh
-rwxr-xr-x 1 1023 1023 845 Apr 12 2022 mssboot
-rwxr-xr-x 1 1023 1023 632 Apr 12 2022 netmgrd
-rwxr-xr-x 1 1023 1023 1956 Apr 12 2022 networking
-rwxr-xr-x 1 1023 1023 390 Apr 12 2022 notifymgr
-rwxr-xr-x 1 1023 1023 1931 Apr 12 2022 odm_upgrader
-rwxr-xr-x 1 1023 1023 6470 Apr 12 2022 populate-volatile.sh
-rwxr-xr-x 1 1023 1023 724 Apr 12 2022 port_bridge
-rwxr-xr-x 1 1023 1023 23056 Apr 12 2022 power_config
-rwxr-xr-x 1 1023 1023 1036 Apr 12 2022 psmd
-rwxr-xr-x 1 1023 1023 985 Apr 12 2022 qmi_shutdown_modemd
-rwxr-xr-x 1 1023 1023 4457 Apr 12 2022 rc
-rwxr-xr-x 1 1023 1023 525 Apr 12 2022 rcS
-rwxr-xr-x 1 1023 1023 968 Apr 12 2022 read-only-rootfs-hook.sh
-rwxr-xr-x 1 1023 1023 289 Apr 12 2022 reboot
-rwxr-xr-x 1 1023 1023 160 Apr 12 2022 reset_reboot_cookie
-rwxr-xr-x 1 1023 1023 585 Apr 12 2022 rmnologin.sh
-rwxr-xr-x 1 1023 1023 324 Apr 12 2022 save-rtc.sh
-rwxr-xr-x 1 1023 1023 438 Apr 12 2022 sendsigs
-rwxr-xr-x 1 1023 1023 67 Apr 12 2022 set_core_pattern.sh
-rwxr-xr-x 1 1023 1023 1141 Apr 12 2022 sfs_config
-rwxr-xr-x 1 1023 1023 1836 Apr 12 2022 shutdown
-rwxr-xr-x 1 1023 1023 578 Apr 12 2022 single
lrwxrwxrwx 1 1023 1023 8 Apr 12 2022 stop-bootlogd -> bootlogd
-rwxr-xr-x 1 1023 1023 782 Apr 12 2022 sysfs.sh
lrwxrwxrwx 1 1023 1023 26 Apr 12 2022 syslog -> /etc/init.d/syslog.busybox
-rwxr-xr-x 1 1023 1023 1703 Apr 12 2022 syslog.busybox
-rwxr-xr-x 1 1023 1023 659 Apr 12 2022 thermal-engine
-rwxr-xr-x 1 1023 1023 939 Apr 12 2022 umountfs
-rwxr-xr-x 1 1023 1023 711 Apr 12 2022 umountnfs.sh
-rwxr-xr-x 1 1023 1023 1473 Apr 12 2022 urandom
-rwxr-xr-x 1 1023 1023 5540 Apr 12 2022 usb
-rwxrwxr-x 1 1023 1023 2426 Apr 12 2022 wlan
/etc/init.d #
1.2、开机启动脚本配置目录
启动配置目录为/etc/rcX.d, 这里的 rcX.d 是指 rc0.d~rc6.d 文件夹,这些文件夹在 Linux 系统中存放于/etc 目录下,如下图:
/etc # ls -al | grep rc
drwxr-xr-x 2 1023 1023 2088 Apr 12 2022 rc0.d
drwxr-xr-x 2 1023 1023 1656 Apr 12 2022 rc1.d
drwxr-xr-x 2 1023 1023 1728 Apr 12 2022 rc2.d
drwxr-xr-x 2 1023 1023 1728 Apr 12 2022 rc3.d
drwxr-xr-x 2 1023 1023 1656 Apr 12 2022 rc4.d
drwxr-xr-x 2 1023 1023 1952 Apr 12 2022 rc5.d
drwxr-xr-x 2 1023 1023 2024 Apr 12 2022 rc6.d
drwxr-xr-x 2 1023 1023 1584 Apr 12 2022 rcS.d
1.3、rc启动级别
rc0.d~rc6.d 名称里面的数字代表的是 Linux 系统的启动级别。 Linux 通常会以一个启动级别来运行的。Linux 系统里面,我们可以通过 runlevel 这个命令来查看当前系统的启动级别。
启动级别所代表的含义如下:
0 停机(不能使用)
1 单用户模式
2 多用户模式,但不能使用 NFS 等
3 完整的多用户模式
4 系统保留(未使用)
5 图形化界面模式
6 重启模式(不能使用)
例如,获取到的当前运行的 Linux 系统的启动级别是 5, 如果想要在这个启动级别里面实现开机自动执行特定脚本,那么需要在/etc/rc5.d 中进行配置。 我们通过 ls /etc/rc5.d 可以看到/etc/rc5.d 下有很多链接文件,如下图:
/etc/rc5.d # ls -al
total 0
drwxr-xr-x 2 1023 1023 1952 Apr 12 2022 .
drwxr-xr-x 27 1023 1023 5800 Apr 12 2022 ..
lrwxrwxrwx 1 1023 1023 20 Apr 12 2022 S01networking -> ../init.d/networking
lrwxrwxrwx 1 1023 1023 29 Apr 12 2022 S01set_core_pattern.sh -> ../init.d/set_core_pattern.sh
lrwxrwxrwx 1 1023 1023 22 Apr 12 2022 S15bsp_paths.sh -> ../init.d/bsp_paths.sh
lrwxrwxrwx 1 1023 1023 20 Apr 12 2022 S15chgrp-diag -> ../init.d/chgrp-diag
lrwxrwxrwx 1 1023 1023 20 Apr 12 2022 S20hwclock.sh -> ../init.d/hwclock.sh
lrwxrwxrwx 1 1023 1023 16 Apr 12 2022 S20syslog -> ../init.d/syslog
lrwxrwxrwx 1 1023 1023 13 Apr 12 2022 S20usb -> ../init.d/usb
lrwxrwxrwx 1 1023 1023 24 Apr 12 2022 S29init_irsc_util -> ../init.d/init_irsc_util
lrwxrwxrwx 1 1023 1023 17 Apr 12 2022 S30mssboot -> ../init.d/mssboot
lrwxrwxrwx 1 1023 1023 24 Apr 12 2022 S35start_embms_le -> ../init.d/start_embms_le
lrwxrwxrwx 1 1023 1023 17 Apr 12 2022 S45netmgrd -> ../init.d/netmgrd
lrwxrwxrwx 1 1023 1023 29 Apr 12 2022 S55reset_reboot_cookie -> ../init.d/reset_reboot_cookie
lrwxrwxrwx 1 1023 1023 20 Apr 12 2022 S80sfs_config -> ../init.d/sfs_config
lrwxrwxrwx 1 1023 1023 33 Apr 12 2022 S90start_subsystem_ramdump -> ../init.d/start_subsystem_ramdump
lrwxrwxrwx 1 1023 1023 19 Apr 12 2022 S97data-init -> ../init.d/data-init
lrwxrwxrwx 1 1023 1023 16 Apr 12 2022 S98dbus-1 -> ../init.d/dbus-1
lrwxrwxrwx 1 1023 1023 22 Apr 12 2022 S99power_config -> ../init.d/power_config
lrwxrwxrwx 1 1023 1023 22 Apr 12 2022 S99rmnologin.sh -> ../init.d/rmnologin.sh
lrwxrwxrwx 1 1023 1023 23 Apr 12 2022 S99stop-bootlogd -> ../init.d/stop-bootlogd
/etc/rc5.d #
这些链接文件指向/etc/init.d 中的 shell 脚本或者其他可执行文件,它们的命名方式基本都是以“S”或者“K”开头,其后紧跟一个数字,数字后则是链接文件的名字。“S”传入的参数是“start” ,“K”传入的参数是“stop”, 紧跟后的数字是执行优先级, 数值越小, 优先级越高。
例如: 链接文件的命名为“S99test”,那么开机执行该链接时就等同于执行“/etc/init.d/test start”, 执行优先级为 99
链接文件的命名为“K99test”,那么开机执行该链接时就等同于执行“/etc/init.d/test stop”,执行优先级为99
二、应用自启动添加
2.1、添加启动脚本
进入 /etc/init.d/目录,
添加启动脚本, 以 start_test 为例。
如果脚本里面需要调用应用执行,可按照如下图所示格式填写:
#! /bin/shset -ecase "$1" in
start)echo -n "Starting test: "start-stop-daemon -S -b -a /usr/bin/testecho "done";;stop)echo -n "Stopping test: "start-stop-daemon -K -n testecho "done";;restart)$0 stop$0 start;;*)echo "Usage test{ start | stop | restart }" >&2exit 1;;
esacexit 0
2.2、获取运行级别
在系统中执行runlevel指令:
/ # runlevel
N 5
查看当前系统的启动级别, 如果获取的运行级别为 5, 则在/etc/rc5.d 中进行配置。
进入 /etc/rc5.d/目录,执行:ln -s /etc/init.d/start_test S99start_test,如果没有启动要求的话,建议将启动优先级设置大一些, 这里设置的启动优先级为 99,如下图:
/etc/rc5.d # ln -s ../init.d/start_test S99start_test
/etc/rc5.d # ls -al
total 0
drwxr-xr-x 2 1023 1023 2024 Jan 1 01:24 .
drwxr-xr-x 27 1023 1023 5800 Apr 12 2022 ..
lrwxrwxrwx 1 1023 1023 20 Apr 12 2022 S01networking -> ../init.d/networking
lrwxrwxrwx 1 1023 1023 29 Apr 12 2022 S01set_core_pattern.sh -> ../init.d/set_core_pattern.sh
lrwxrwxrwx 1 1023 1023 22 Apr 12 2022 S15bsp_paths.sh -> ../init.d/bsp_paths.sh
lrwxrwxrwx 1 1023 1023 20 Apr 12 2022 S15chgrp-diag -> ../init.d/chgrp-diag
lrwxrwxrwx 1 1023 1023 20 Apr 12 2022 S20hwclock.sh -> ../init.d/hwclock.sh
lrwxrwxrwx 1 1023 1023 16 Apr 12 2022 S20syslog -> ../init.d/syslog
lrwxrwxrwx 1 1023 1023 13 Apr 12 2022 S20usb -> ../init.d/usb
lrwxrwxrwx 1 1023 1023 24 Apr 12 2022 S29init_irsc_util -> ../init.d/init_irsc_util
lrwxrwxrwx 1 1023 1023 17 Apr 12 2022 S30mssboot -> ../init.d/mssboot
lrwxrwxrwx 1 1023 1023 24 Apr 12 2022 S35start_embms_le -> ../init.d/start_embms_le
lrwxrwxrwx 1 1023 1023 17 Apr 12 2022 S45netmgrd -> ../init.d/netmgrd
lrwxrwxrwx 1 1023 1023 29 Apr 12 2022 S55reset_reboot_cookie -> ../init.d/reset_reboot_cookie
lrwxrwxrwx 1 1023 1023 20 Apr 12 2022 S80sfs_config -> ../init.d/sfs_config
lrwxrwxrwx 1 1023 1023 33 Apr 12 2022 S90start_subsystem_ramdump -> ../init.d/start_subsystem_ramdump
lrwxrwxrwx 1 1023 1023 19 Apr 12 2022 S97data-init -> ../init.d/data-init
lrwxrwxrwx 1 1023 1023 16 Apr 12 2022 S98dbus-1 -> ../init.d/dbus-1
lrwxrwxrwx 1 1023 1023 22 Apr 12 2022 S99power_config -> ../init.d/power_config
lrwxrwxrwx 1 1023 1023 22 Apr 12 2022 S99rmnologin.sh -> ../init.d/rmnologin.sh
lrwxrwxrwx 1 root root 20 Jan 1 01:24 S99start_test -> ../init.d/start_test
lrwxrwxrwx 1 1023 1023 23 Apr 12 2022 S99stop-bootlogd -> ../init.d/stop-bootlogd
2.3、开机自启动验证
重启单板,进入文件系统执行 ps | grep “test”
如果看到 test 进程,说明 test 已经启动成功。
Linux添加开机自启动应用相关推荐
- linux开发板开机自启动脚本,linux 添加开机自启动脚本
Linux设置服务开机自动启动的方式有好多种,这里介绍一下通过chkconfig命令添加脚本为开机自动启动的方法. 1. 编写脚本autostart.sh(这里以开机启动redis服务为例),脚本内容 ...
- linux添加开机自启动脚本示例详解
linux下(以RedHat为范本)添加开机自启动脚本有两种方法,先来简单的; 一.在/etc/rc.local中添加 如果不想将脚本粘来粘去,或创建链接什么的, 则: step1. 先修改好脚本,使 ...
- linux添加开机自启动脚本
一.在/etc/rc.local中添加 如果不想将脚本粘来粘去,或创建链接什么的, 则: step1. 先修改好脚本,使其所有模块都能在任意目录启动时正常执行; step2. 再在/etc/rc.lo ...
- linux 添加开机自启动脚本
将你自己的restart.sh脚本改造成如下: #!/bin/sh #chkconfig: 2345 80 90 #description:开机自动启动的脚本程序#下面是你的sh脚本,上面的是默认写法 ...
- rcs开机启动mysql_linux添加开机自启动脚本示例详解-阿里云开发者社区
linux添加开机自启动脚本示例详解 double2li 2017-04-14 1652浏览量 简介: linux下(以RedHat为范本)添加开机自启动脚本有两种方法,先来简单的;一.在/etc/r ...
- Windows核心编程_添加开机自启动
添加开机自启动的方式有很多种,这里以:startup方式为例,在Windows用户目录下有一个Startup目录,这个目录下的程序会被Windows登入之后所启动,但是启动级别属于较低的,这个目录适合 ...
- linux 添加开机启动项的三种方法。
原文地址: https://blog.csdn.net/lylload/article/details/79488968 Shell环境变量配置文件:https://blog.csdn.net/yzs ...
- [513]linux设置开机自启动
文章目录 自启动方法1 自启动方法2 方法3:在`/etc/rc.d/init.d`目录下添加自启动脚本 关机要执行的命令 自启动方法1 1.权限编辑/etc/rc.d/rc.local cd /et ...
- linux 设置开机自启动 文件配置开机自启动命令
linux 设置开机自启动 文件配置开机自启动命令 在/etc/rc.local文件中添加自启动命令 执行命令 执行脚本 在/etc/init.d目录下添加自启动脚本 运行级别设置 在/etc/rc. ...
最新文章
- 安装flex4 plug-in插件的时候遇到老是在起始处安装不起
- 哪些电脑最适合做机器学习、数据科学和深度学习呢?这里有份调研报告
- nChain首席科学家CSW:闪电网络会把BCE变成空洞的幽灵
- 如何使用jQuery向asp.net Mvc传递复杂json数据
- 刚评上院士的马斯克就飘了,说要每天发射三次大火箭,向火星转移100万吨物资...
- 孙庆新:做产品,感觉从何而来
- datatables 无法 无法重新初始化datatable_伽巫塔罗:2020年9月运势占卜,摩羯没了热情,无法重新卡死...
- Flutter Mac下环境配置
- iOS sqlite
- 前端学习(477):前端简介1
- python设计一个动物类_我用Python实现了12500张猫狗图像的精准分类
- ES6(三)——回调地狱和promise异步任务顺序执行(传参、错误处理)
- [乐理知识] 第三章 拍子 节拍 节奏
- 如何编写完美的 Python 命令行程序?
- java cstring_CString and char *
- Maven--Cargo远程部署
- PHP发卡自动源码,PHP自动化售货发卡网源码
- webstorm破解版
- grads插值_GrADS中格点插值到站点(gr2stn)的详细方法
- 清华大学学术答辩通用PPT模板
热门文章
- Mac book笔记本输入法错乱
- 宝塔面板PM2 nodejs自动化部署
- 被言情小说泡大的人工智能,随便写几行字都是情诗
- 网页文件是用html语言创建的文本文件,把txt文件变成html网页文件
- 数字重复次数统计软件
- 使用 Cloud Insight SDK 监控北京空气质量!
- ServU 11 以上版本的数据库用户关联 密码加密原理
- 戴尔t7610服务器安装系统,Dell Poweredge R730服务器系统安装和配置详细教程
- Mac出现异常,如何在M1或Intel Mac上重置NVRAM
- 【数据结构+算法】浙传OJ Contest 2290:13信息1 Java 6 问题 F: Hexagon Game