请跟我一起详细讲解“Linux 添加开机启动方法(服务/脚本)”的完整攻略。
什么是开机启动
开机启动是系统启动时要自动启动的脚本或服务。在Linux系统中,开机启动分为两种类型:服务和脚本。
服务是一种系统进程,常驻内存,提供特定的功能。通过启动和停止服务,可以控制特定的模块,以达到管理系统的目的。
脚本是一连串编写的命令,可以在终端或者脚本中执行。如果需要在系统启动时执行某个脚本,就需要将这个脚本添加到开机启动中。
添加服务方法
1.编写服务脚本
通常我们需要编写一个System V style的service脚本,即一个脚本名为/etc/init.d/下的文件。
例如,我们编写一个简单的服务脚本,用于启动一个名为test_service的进程,实现以下功能:
#!/bin/sh
# Author: example.com
. /etc/rc.d/init.d/functions
prog="test_service"
pidfile="/var/run/${prog}.pid"
exec="/usr/bin/${prog}"
start() {
if [ -f ${pidfile} ] && [ -d /proc/$(cat ${pidfile}) ]; then
echo "${prog} (pid $(cat ${pidfile})) already running"
return 0
fi
echo "Starting ${prog}..."
${exec} &
echo $! > ${pidfile}
echo "Started ${prog} (pid $(cat ${pidfile}))."
}
stop() {
if [ ! -f ${pidfile} ] || ! kill -0 $(cat ${pidfile}); then
echo "${prog} not running"
return 0
fi
echo "Stopping ${prog}..."
kill $(cat ${pidfile})
rm -f ${pidfile}
echo "Stopped ${prog}."
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit 0
2.将服务脚本添加到服务列表
在CentOS/Fedora/RedHat等系统中,可以使用chkconfig将服务脚本添加到服务列表中。以添加test_service为例,运行以下命令:
sudo chkconfig --add /etc/init.d/test_service
3.设置服务开机启动
使用以下命令将test_service设置为开机启动:
sudo chkconfig test_service on
至此,服务添加到开机启动已经完成。
添加脚本方法
如果需要在系统启动时执行某个脚本,就需要将这个脚本添加到开机启动中。
1.编写脚本
例如,编写一个简单的脚本,实现以下功能:
#!/bin/sh
echo "Hello, World!" > /tmp/hello.txt
2.将脚本添加到开机启动目录
将脚本添加到/etc/init.d/里即可。假设将脚本存储为my_script.sh,运行以下命令:
sudo cp /path/to/my_script.sh /etc/init.d/
sudo chmod 755 /etc/init.d/my_script.sh
3.设置脚本开机启动
使用以下命令将my_script设置为开机启动:
sudo ln -s /etc/init.d/my_script.sh /etc/rc.d/rc3.d/S99my_script
其中,S99代表脚本的启动顺序,在此设置为99,这样可以确保脚本在其他服务启动之后才被执行。
至此,脚本添加到开机启动已经完成。
总结
添加服务和脚本到开机启动的方法略有不同,需要根据需要选择。当然,也可以采用其他方式来实现开机启动,比如rc.local等。只要能实现开机启动的目的即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux 添加开机启动方法(服务/脚本) - Python技术站