OpenSuse 12.3 の /etc/init.d/skeleton はどこにありますか?

OpenSuse 12.3 の /etc/init.d/skeleton はどこにありますか?

OpenSuse 12.3 を新規インストールして、プログラムを「デーモン化」したいと考えています。インターネットで見つかったすべての例を見ると、まず.../etc/init.d/myscriptに基づいて作成する必要があることがわかります。/etc/init.d/skeleton

しかし、私は持っていません/etc/init.d/skeleton...このファイルのための別の場所はありますか?それとも何かをインストールする必要があるのでしょうか?

システムは最新です、まずそれを確認しました。

既存のスクリプトをコピーして変更したり、新しいスクリプトを作成したりできることはわかっています/etc/init.dが、それが間違っているのか、OpenSuse でそれを行う別の特別な方法があるのか​​どうかがわかります。

答え1

ファイルがどこに消えたのかはわかりませんが、この変更は、 OpenSUSE 12 以降、従来のinitscripts/etc/init.d/skeletonの置き換えに関連していると思われます。OpenSUSE 12は、よく知られている initscripts と完全に互換性がありますが、サービスを開始するモデルを使用することを好みます。SysV init daemonsystemdsystemdsystemd

私の意見では、従来の initscripts は扱いにくく、場合によってはシェル スクリプトのより深い知識が必要になることがあります。一方、サービス ( ) のsystemd"initscript" または構成ファイルは、ファイルと同様に単純な構文であるため、保守が簡単です。ユニット ファイルを作成し、そのファイルを ディレクトリにドロップして有効にすることができます。このディレクトリは、既定のディレクトリ よりも優先順位が高くなります。デーモン ユニットの例を次に示します。unitman systemd.unit.INI/etc/systemd/system/usr/lib/systemd/systemsshd

[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

あるいは、慣れている「レガシー」initscripts を使い続けることもできます。ただし、systemd次のような優れた機能が失われます:

  • 起動時間の短縮、サービスの並列起動
  • 自動依存関係処理
  • サービスの監視とクラッシュしたサービスの自動再起動
  • その他多数

sshd.service最後に、 initscript ( /etc/init.d/sshd) と同じベース名を持つユニット ( ) がある場合、initscript は無視され、systemdユニットが優先されて使用されることに注意してください。

関連情報