CentOS7でUpstartスクリプトを使用するには?

CentOS7でUpstartスクリプトを使用するには?

/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

この質問には2つの答えがあります。

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スクリプトにはスクリプトの開始/停止が必要な時期と、スクリプトの開始/停止に必要な事項を定義する情報コメント規則が必要です。これを確認することをお勧めしますガイドそして、起動スクリプトをシステム単位で書き直します。

関連情報