OpenSuse 12.3 上我的 /etc/init.d/sculpture 在哪裡?

OpenSuse 12.3 上我的 /etc/init.d/sculpture 在哪裡?

在全新安裝 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.與眾所周知的 initscripts 完全兼容,但我更喜歡使用啟動服務的模型。SysV init daemonsystemdsystemdsystemd

在我看來,傳統的初始化腳本可能很棘手,有時,它們可能需要更深入的 shell 腳本知識。另一方面,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將優先使用該單元。

相關內容