2012-04-24 4 views
2

/etc/rc.conf構成ファイルをプログラムで更新するには、どのような方法が最適ですかbashなど:プログラムで設定ファイルを更新していますか?

具体的には、アーチのLinuxマシン上で、私は、PostgreSQLが正常にpacman経由でインストールされた後、プログラム

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

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

を更新できるようにしたいです。

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

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

は特にこのPostgreSQLのシナリオを処理するには、次の

は、私は私のような何かをする関数を記述することができます推測します。

しかし、一歩先に進む、プログラム的に私(例えばmemcachedとして、またはzeromqなどのようなタスク・サーバのような)サービスを含んでいる(あなたがお勧めすることができます1があるかどうライブラリを使用して)より一般的な方法がある中/etc/rc.confファイルのDAEMONSパラメータ

答えて

1

一般的な方法(シェルコードの解析と修正を行うツールはほとんどないようです)はわかりませんが、このような単純な配列を更新する方法は実際にはそれを読み取ることができますが、全体のラインを書き戻し、その後、それを変更する - このような何か:

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がアップ読んでいますと、現時点でそれを実験しています。 –

+0

linodeサーバインスタンスでの 'systemd'の使用には、' pv-grub'でカスタムカーネルを使用する必要があります。したがって、 'pv-grub'でカスタムカーネルをロードしたくない場合、bashスクリプトは簡単なアプローチです。 –

関連する問題