2012-04-24 60 views
2

什么是最好的方法来更新/etc/rc.conf配置文件以编程方式bash或其他东西:以编程方式更新配置文件?

具体而言,Arch Linux的机器上,我希望能够以编程方式更新

DAEMONS=(syslog-ng network sshd ntpd netfs crond) 

DAEMONS=(syslog-ng network sshd ntpd netfs crond postgresql) 

后的PostgreSQL通过pacman安装成功。

我相信我能写,做类似的功能:

line="DAEMONS=(syslog-ng network sshd ntpd netfs crond)" 

sed -i "/${line}/ s/)/ postgresql)/" /etc/rc.conf 

,专门处理这种情况的PostgreSQL。

然而,往前一步,是有没有更通用的方式(使用库,如果有一个你可以推荐)以编程方式包括我的服务(如memcached,还是喜欢像zeromq等任务的服务器)的我的/etc/rc.conf文件中的DAEMONS参数?

回答

1

我不知道一个通​​用的方法(似乎有很少的工具可以解析和修改shell代码),但更新一个像这样的简单数组的方法可能是实际读取它,改变它,然后写回整条生产线 - 事情是这样的:

source /etc/rc.conf 
DAEMONS+=(postgresql) 
sed -i -e s/'^DAEMONS=.*'/"DAEMONS=(${DAEMONS[@]})"/ /etc/rc.conf 
+0

上#archlinux IRC频道有人建议'systemd' - https://wiki.archlinux.org/index.php/Systemd正在读起来在此刻进行试验。 – 2012-04-24 08:00:04

+0

linode服务器实例上的'systemd'用法要求我使用'pv-grub'的自定义内核,所以如果我不想用'pv-grub'加载自定义内核,则bash脚本是一种更简单的方法。 – 2012-04-25 01:26:53