Centos

為什麼我的 Linux 服務同時啟動和停止?

  • January 25, 2021

我有一個基於 CentOS 的 Amazon Linux AMI,我正在嘗試設置自定義服務,其中將在啟動時呼叫一個小的 bash 腳本(在特定位置創建一個虛擬文件)。

我按照本教程https://unix.stackexchange.com/a/20361創建了一個如下所示的自定義服務腳本,並以 777 權限和所有者身份將myscript其複製到;/etc/init.d folder``root

#!/bin/bash
# chkconfig: 2345 20 80
# description: Description comes here....

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

start() {
     echo -n "Starting myscript... "
     su user
     touch /data/startfile
     return 0
}

stop() {
     echo -n "Stopping myscript... "
     su user
     touch /data/stopfile
     return 0
}

case "$1" in 
   start)
      start
      ;;
   stop)
      stop
      ;;
   restart)
      stop
      start
      ;;
   status)
      ;;
   *)
      echo "Usage: $0 {start|stop|status|restart}"
esac

exit 0

重新啟動機器後,當我檢查/data/目錄時,我可以看到兩個文件startfile以及stopfile. 如果服務自動啟動,startfile這是可以預料的,但我想知道stopfile. 有人可以解釋為什麼會這樣嗎?

謝謝

當您要求系統重新啟動時,您的 initscript 將被呼叫:這可能stopfile是在創建時。

startfile在系統引導期間按預期創建。

檢查文件上的時間戳應該可以讓您確認:stopfile應該在您要求重新啟動的時間和系統實際重新啟動的時間之間加上時間戳,並且startfile應該是系統重新啟動後的時間戳。

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