在關閉/重新啟動之前運行腳本

在關閉/重新啟動之前運行腳本

我想在實例被告知關閉時運行 PHP 腳本,但當然在它實際完成關閉之前。我的特定腳本只是希望將一些日誌檔案從本機分割區推送到另一台伺服器。

我已經了解了這個過程如何運作的要點,但我需要一些澄清。

我怎麼理解。如果我錯了,請糾正我。

  1. 在 /etc/init.d 中建立一個可執行腳本(我們稱之為 /etc/init.d/push-logs)
  2. 從 /etc/rc0.d(關閉)和 /etc/rc6.d(重新啟動)建立到 /etc/init.d/push-logs 的符號連結。名稱應該是 KXXpush-logs

這是我的問題:

  1. 當然-我理解正確嗎?
  2. 對於上面的#2 - 聽起來 XX 越低越好 - 我可以使用的數字是否太低?如果它與另一個腳本共享一個數字,這有關係嗎?
  3. /etc/init.d/push-logs 中的腳本是否必須遵循標準 init.d 範本(支援啟動/停止等命令)?這並不真正適用於我的用例。如果可能的話我只希望腳本如下:
#!/bin/sh
#
# Run PHP file prior to shutdown
#

/usr/bin/php /path/to/php_file.php

答案1

  1. 是的,但是符號連結名稱應該以S- 開頭(代表開始(K 代表終止))
  2. 兩位數指定腳本的執行順序,編號最小的先執行。
  3. service push-logs start是的,因為 Linux 將執行符號連結的等效操作S

答案2

在 CentOS 上,您還需要以下位置的匹配文件/var/lock/subsys/

/var/lock/subsys/push-logs

https://unix.stackexchange.com/questions/114274/an-init-script-does-not-get- Called-on-shutdown

考慮到這一點,製作一個虛假服務可能會更容易,該服務在啟動時觸及該文件,但對狀態不執行任何操作...

相關內容