linux中添加开机启动脚本sh的一些方法

  1. 其他启动方式:
    1. 一、在/etc/rc.local文件中添加自启动命令
    2. 二、在/etc/init.d目录下添加自启动脚本

以下是美化后的内容:

其他启动方式:

sysv-rc-conf-linuxi设置开机自动启动

一、在/etc/rc.local文件中添加自启动命令

这个方法在大多数Linux的最新发行版本中其实已经行不通了,至少我们在Debian 10中就试过,一直报错。

执行命令:编辑/etc/rc.local,添加你想开机运行的命令。

运行程序脚本:然后在文件最后一行添加要执行程序的全路径。

例如,每次开机时要执行一个hello.sh,这个脚本放在/usr下面,那就可以在/etc/rc.local中加一行/usr/./hello.sh,或者cd /opt && ./hello.sh

注意,你的命令应该添加在exit 0之前。

二、在/etc/init.d目录下添加自启动脚本

Linux在/etc/rc.d/init.d下有很多的文件,每个文件都是可以看到内容的,其实都是一些shell脚本或者可执行二进制文件。

Linux开机的时候,会加载运行/etc/init.d目录下的程序,因此我们可以把想要自动运行的脚本放到这个目录下即可。系统服务的启动就是通过这种方式实现的。

具体方法:

首先,进入/etc/init.d目录中:

cd /etc/init.d/

然后,我们使用ls命令,会发现里面有一些文件。这些文件就是在开机启动时自动运行的程序。我们现在来开始添加一个自定义的开机启动项MyTest

vim MyTest

文件名严格区分大小写,请注意!

你可以使用你自己喜欢的文本编辑工具进行编辑工作。此文以vim为例。

然后,在继续之前,先看一下开机启动项文件的一个模板:

#!/bin/sh

### BEGIN INIT INFO
# Provides: [程序名称,唯一]
# Required-Start: $network $remote_fs $local_fs
# Required-Stop: $network $remote_fs $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: [启动项的简短说明]
# Description: [启动项的完整说明]
### END INIT INFO

[需要执行的命令]

exit 0

在这个模板中,Provides是唯一的,也就是在所有的开机启动项中,Provides不能有任何同名冲突。

Short-DescriptionDescription随心情写。

需要执行的命令,按照正常的Bash Shell书写方式书写即可。

友情提示:需要后台静默运行的程序,请使用nohup [需要执行的命令] >/dev/null 2>&1 &方式来启动!

最后的exit 0请不要删除!这个是返回正常退出信号的一个传值!

那么,我们设想我们需要创建一个名为MyTest的开机启动项,并要求其在开机时在/root/mytest.txt文件中写入一句话:“Hello Linux World!”。根据上面的模板,我们需要修改成这个样子:

#!/bin/sh
# hwclock.sh    Set and adjust the CMOS clock.
#
# Version:  @(#)hwclock.sh  2.00  14-Dec-1998  [email protected]
#
# Patches:
#      2000-01-30 Henrique M. Holschuh#         - Minor cosmetic changes in an attempt to help new
#         users notice something IS changing their clocks
#         during startup/shutdown.
#       - Added comments to alert users of hwclock issues
#         and discourage tampering without proper doc reading.
#               2012-02-16 Roger Leigh#                - Use the UTC/LOCAL setting in /etc/adjtime rather than
#                  the UTC setting in /etc/default/rcS.  Additionally
#                  source /etc/default/hwclock to permit configuration.

### BEGIN INIT INFO
# Provides:          startnpc1
# Required-Start:    mountdevsubfs

欢迎指出任何有错误或不够清晰的表达,可以在下面评论区评论。

×

喜欢就点赞,疼爱就打赏

//