Fedora

如何在啟動時在 /etc/init.d 中創建腳本?

  • February 26, 2021

我想我不久前讀過一些關於此的內容,但我不記得它是如何完成的。本質上,我有一個服務/etc/init.d,我想在啟動時自動啟動。我記得它與將腳本符號連結到/etc/rc.d目錄有關,但我現在不記得了。這個命令是什麼?

我相信我在使用 Fedora/CentOS 衍生產品。

如前所述,如果您使用的是基於 Red Hat 的系統,則可以執行以下操作:

  1. 創建一個腳本並放置在/etc/init.d(例如/etc/init.d/myscript)中。該腳本應具有以下格式:
#!/bin/bash
# chkconfig: 2345 20 80
# description: Description comes here....

# Source function library.
. /etc/init.d/functions

start() {
   # code to start app comes here 
   # example: daemon program_name &
}

stop() {
   # code to stop app comes here 
   # example: killproc program_name
}

case "$1" in 
   start)
      start
      ;;
   stop)
      stop
      ;;
   restart)
      stop
      start
      ;;
   status)
      # code to check status of app comes here 
      # example: status program_name
      ;;
   *)
      echo "Usage: $0 {start|stop|status|restart}"
esac

exit 0 

格式非常標準,您可以在/etc/init.d. 然後,您可以像這樣/etc/init.d/myscript startchkconfig myscript start. ckconfig手冊頁解釋了腳本的標題:

> This says that the script should be started in levels 2,  3,  4, and
> 5, that its start priority should be 20, and that its stop priority
> should be 80.

範例啟動、停止和狀態程式碼使用定義在/etc/init.d/functions

  1. 啟用腳本
$ chkconfig --add myscript 
$ chkconfig --level 2345 myscript on 
  1. 檢查腳本是否已啟用 - 您應該看到所選級別的“開啟”。
$ chkconfig --list | grep myscript

引用自:https://unix.stackexchange.com/questions/20357