rcctl: OpenBSD上的服务管理程序

在OpenBSD环境下搭建各种服务器的相关讨论。

版主: lionuxchenjun天地乾坤

回复
头像
acheng
锌 Zn
帖子: 581
注册时间: 2011-07-07 21:52

rcctl: OpenBSD上的服务管理程序

帖子 acheng » 2015-12-01 8:08

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'

回复

在线用户

正浏览此版面之用户: 没有注册用户 和 8 访客