Linux基于SysVinit和systemd实现开机自启动服务
最近着手导师分配的项目任务,对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