OpenSuse 12.3을 새로 설치할 때 프로그램을 "데몬화"하고 싶습니다. 그리고 인터넷에서 찾은 모든 예를 보면 /etc/init.d/myscript
먼저 /etc/init.d/skeleton
...
하지만 저는 /etc/init.d/skeleton
... 이 파일을 저장할 다른 장소가 있나요? 아니면 뭔가를 설치해야 할까요?
시스템이 최신 상태라서 먼저 확인해 봤습니다.
다른 기존 스크립트를 복사하여 수정하거나 새 스크립트를 만들 수 있다는 것을 알고 있지만 /etc/init.d
잘못하고 있는지 또는 OpenSuse에서 이를 수행할 수 있는 또 다른 특별한 방법이 있는지도 알 수 있습니다.
답변1
파일 이 어디에서 사라졌는지 잘 모르겠지만 OpenSUSE 12 이후로 이 변경 사항은 기존 의 /etc/init.d/skeleton
대체와 관련이 있을 것으로 예상됩니다. 잘 알려진 initscript와 완벽하게 호환되지만 서비스 시작 모델을 사용하는 것을 선호합니다 .SysV init daemon
systemd
systemd
systemd
제 생각에는 전통적인 initscript는 까다로울 수 있으며 때로는 쉘 스크립팅에 대한 더 깊은 지식이 필요할 수도 있습니다. 반면에 서비스( )에 대한 systemd
"initscript" 또는 구성 파일은 파일 과 유사한 간단한 구문을 갖기 때문에 유지 관리가 더 쉽습니다 . 일부 유닛 파일을 작성하고 해당 파일을 디렉터리에 놓아 활성화할 수 있습니다 . 이 디렉토리는 기본 디렉토리보다 우선순위가 높습니다 . 데몬 유닛 의 예는 다음과 같습니다.unit
man systemd.unit
.INI
/etc/systemd/system
/usr/lib/systemd/system
sshd
[Unit]
Description=OpenSSH Daemon
After=syslog.target network.target
[Service]
EnvironmentFile=/etc/sysconfig/ssh
ExecStartPre=/usr/sbin/sshd-gen-keys-start
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=always
[Install]
WantedBy=multi-user.target
또는 사용되는 대로 "레거시" 초기화 스크립트를 계속 사용할 수도 있습니다. 그러나 다음과 같은 몇 가지 깔끔한 기능이 손실됩니다 systemd
.
- 더 빠른 부팅 시간, 실제 병렬 서비스 시작
- 자동 종속성 처리
- 서비스 모니터링 및 충돌이 발생한 서비스의 자동 재시작
- 그리고 훨씬 더
sshd.service
마지막으로, initscript( /etc/init.d/sshd
)와 동일한 기본 이름을 가진 유닛( )이 있는 경우 initscript는 무시되고 해당 systemd
유닛이 우선적으로 사용된다는 점을 명심하세요 .