最近着手导师分配的项目任务,对Linux有了一定基础的了解,项目其中有要求在Linux部署一个开机自启动服务。本文将以此为目的来探索如何实现开机自启动服务。
GNU/Linux实现开机自启动服务有两种方式:
SysVinit
systemd
SysVinit
SysVinit作为init进程执行/etc/init.d/中的脚本,这些脚本称为“服务”,每个run level所对应的目录/etc/rcX.d/都存放这指向/etc/init.d/的链接,其中X=0, 1, 2, 3, 4, 5, 6对应不同的运行级别,S比较特殊,init进程作为1号进程启动后,会在开始对应运行级别的服务之前开始/etc/rcS.d中的服务。
运行级别
关机
单用户模式
多用户模式(没有NFS)
多用户模式
保留
x window模式(图形界面)
重启
/etc/init.d中的服务样式如下:
#!/bin/bash
start() {
# 你要执行的程序或脚本
}
stop() {
...
}
# shell脚本中,$0表示自身shell脚本对于当前执行路径的相对名称
# 从$1开始表示接收的参数
# example:
# cd ~
# sh start.sh hello
# $0: start.sh
# $1: hello
switch $1 in
case
start)