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
そのユニットが優先されることに注意してください。