2012-04-24 1 views
2

/etc/rc.conf 구성 파일 을 프로그래밍 방식으로 업데이트하는 최선의 방법은입니까?bash 또는 다른 것 : 프로그래밍 방식으로 구성 파일을 업데이트 하시겠습니까?

특히, 아치 리눅스 시스템에서, 나는

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

일반적인 방법 (쉘 코드의 구문 분석 및 수정을 수행하는 도구가 거의없는 것 같습니다)은 알지 못합니다. 그러나이 간단한 배열을 업데이트하는 한 가지 방법은 실제로 읽을 수있는 방법입니다. 변경 후 전체 라인을 다시 쓰기 - 이런 식으로 뭔가를 :

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 스크립트는 더 간단한 접근법입니다. –

관련 문제