Linux

在關機/重啟之前執行腳本

  • August 28, 2014

我想在實例被告知關閉時執行 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. 是的,符號連結名稱應該以S- 開頭(表示開始)(K 表示殺戮)
  2. 兩位數指定腳本的執行順序,編號最小的先執行。
  3. 是的,因為 Linux 將執行符號連結的等價service push-logs start物。S

在 CentOS 上,您還需要匹配文件/var/lock/subsys/

/var/lock/subsys/push-logs

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

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

引用自:https://serverfault.com/questions/332598