以下是美化后的内容:
其他启动方式:
一、在/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-Description
和Description
随心情写。
需要执行的命令,按照正常的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
欢迎指出任何有错误或不够清晰的表达,可以在下面评论区评论。