OpenBSD上的服务管理程序rcctl


 

rcctl是OpenBSD系统上的后台进程(daemon)管理程序,功能上类似于以前RedHat Linux上的chkconfig或新版中的systemctl。

 

它其实是一个shell脚本程序,最早见于OpenBSD 5.7。需要有root权限才可以使用。
它的原理主要是通过在/etc/rc.conf.local文件中设置相应进程的配置来完成。被管理的进程需要在/etc/rc.d/目录下有相应的控制脚本文件。

 

主要功能及示例

 

(下面的内容主要是根据rcctl的man手册翻译而来,我再加上一些范例。愿意的朋友可以自己阅读man手册)

 

启用或禁用后台进程(包括系统自带进程如httpd以及通过软件包安装的进程如mysqld/nginx等,下同)

 

rcctl enable httpd  ## 启用
rcctl disable httpd  ## 禁用

 

启动或停止后台进程

 

rcctl start httpd
rcctl stop httpd

 

也可以根据需要传入 -d (开启debug)或 -f (强制)参数

 

列出进程相关的参数

 

# rcctl get httpd
httpd_class=daemon
httpd_flags=
httpd_timeout=30
httpd_user=root

 

列出进程默认参数

 

# rcctl getdef httpd
httpd_class=daemon
httpd_flags=
httpd_timeout=30
httpd_user=root

 

如果你没修改过默认参数,那么它和get子命令的输出应该是相同的

 

列出符合特定条件的进程

 

rcctl ls $con

 

列出符合条件的进程。这里的条件不可以自定义,只可以从下面几个关键词选择:

 

                  all      all services and daemons  ## 所有的服务和进程
                  faulty  enabled but stopped daemons ## 启用但未能启动的服务和进程
                  off      disabled services and daemons ## 禁用的服务和进程
                  on      enabled services and daemons  ## 启用的服务和进程
                  started  running daemons  ## 已经启动的进程
                  stopped  stopped daemons  ## 已经停止的进程

 

# rcctl ls faulty
httpd
ntpd

 

这里httpd和ntpd两个进程已经启用,但是未能启动(意味着管理员有活干了)。

 

调整pkg_scripts中进程的顺序
pkg_scripts这个变量是用来控制从软件包中安装的进程的。有多个进程的时候,我们有时候需要调整一下它们的顺序.

 

rcctl order  d  ## 把指定的进程d移到第一位:
rcctl order d d1 d2  ## 把指定的进程d移到d1和d2之前
rcctl order  ## 列出当前的顺序

 

设置进程参数

 

rcctl set httpd status on  ## 应该是和rcctl enable httpd的功能是一样的,我目前没有发现两者的差别
rcctl set ntpd flags -s    ## 设置ntpd的flags参数为'-s'

本文永久更新链接地址

相关内容