/etc/init/start_swift.conf
다음을 사용하여 파일을 만들어야 합니다 .
description "mount swift drives"
start on runlevel [234]
stop on runlevel [0156]
exec /opt/swift/bin/mount_devices
하지만 문제는 init 디렉토리조차 없다는 것입니다. start_swift.conf
투자 했는데 /etc/init.d/
소용없네요. CentOS7에서 이러한 시작 파일을 만드는 방법은 무엇입니까?
답변1
이 질문에는 두 가지 대답이 있습니다.
CentOS 7 systemd에서는 시작 시 서비스나 스크립트를 실행할 수 있습니다. 다음과 같이 .service 파일을 /etc/systemd/system 아래에 배치합니다.
; /etc/systemd/system/swift.service
[Unit]
Description=Swift
[Service]
Type=notify
ExecStart=myscript
[Install]
; Runlevel here:
WantedBy=multi-user.target
그러나 스크립트의 의도에 따라 실제로 systemd를 사용하여 장치를 직접 마운트할 수 있습니다.
(비rpm 패키지) 서비스의 경우 /etc/systemd/system 아래에 ".mount" 파일을 배치할 수 있습니다(예: /etc/systemd/system/var-lib-docker.mount). systemd의 자동 마운트 옵션을 확인하고 싶을 수도 있습니다. 참고자료를 참조하세요.
파일을 로드하려면 다음을 사용하세요.systemd 데몬 다시 로드.
; /etc/systemd/system/var-lib-docker.mount
[Unit]
Description="Mount a volume"
Before=network.service
[Mount]
What=/dev/sdb1
Where=/var/lib/docker
;Options=
조정할 수 있는 곳이 많이 있습니다. 다음을 참조하세요.
인용하다 -https://www.freedesktop.org/software/systemd/man/systemd.service.html -https://www.freedesktop.org/software/systemd/man/systemd.mount.html -https://www.freedesktop.org/software/systemd/man/systemd.automount.html
답변2
Centos는 Upstart가 아닌 systemd를 사용합니다. Systemd는 SysV init 스크립트와 역호환됩니다. LSB 3.1에 따르면 init 스크립트에는 스크립트를 시작/중지해야 하는 시기와 스크립트를 시작/중지하는 데 필요한 사항을 정의하는 정보 주석 규칙이 있어야 합니다. 이것을 확인하는 것이 좋습니다가이드그리고 시작 스크립트를 시스템 단위로 다시 작성하십시오.