Centos
為什麼我的 Linux 服務同時啟動和停止?
我有一個基於 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
應該是系統重新啟動後的時間戳。