OpenSuse 12.3을 새로 설치하는 동안 프로그램을 "보호"하고 싶습니다. 그리고 인터넷에서 찾은 모든 예 중에서 먼저 /etc/init.d/myscript
.../etc/init.d/skeleton
하지만 난 /etc/init.d/skeleton
... 이 파일을 저장할 다른 곳이 있나요? 아니면 뭔가를 설치해야 할까요?
시스템이 최신 상태인지 먼저 확인했습니다.
다른 기존 스크립트를 복사하여 수정하거나 새 스크립트를 만들 수 있다는 것을 알고 있지만 /etc/init.d
, 제가 잘못하고 있는 것인지 아니면 OpenSuse에서 이 작업을 수행할 수 있는 또 다른 특별한 방법이 있는지도 알 수 있습니다.
답변1
파일이 어디로 사라지는지 잘 모르겠지만 /etc/init.d/skeleton
OpenSUSE 12가 잘 알려진 initscript와 완벽하게 호환되기 때문에 이 변경 사항이 레거시 교체와 관련이 있기를 바랍니다. 그러나 저는 시작 서비스를 사용하는 모델을 선호합니다.SysV init daemon
systemd
systemd
systemd
제 생각에는 전통적인 init 스크립트는 까다로울 수 있으며 때로는 더 깊은 쉘 스크립팅 지식이 필요할 수도 있습니다. 반면에 서비스( )의 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
해당 유닛이 우선시된다는 점을 기억하세요.