Bash

重啟後恢復 Bash 腳本

  • June 12, 2019

我有一個 bash 腳本,它更改了作業系統和數據庫中的一些配置,它需要重新啟動,然後需要執行其他命令。像這樣的東西:

newvalue1=
ip=
.
.
some commands
.
.
reboot
.
.
some other commands

怎麼做才能做到這一點?

(堆棧交換上還有 2 個類似的問題,Q1Q2,但很久以前就被問過了,使用者不再主動向他們提問。我再次詢問是否有新的想法和答案)

如果您可以修改腳本並且可以使用crontab,那麼您可以使用@reboot時間crontab重新執行腳本。腳本的行為將是雙重的,具體取決於它的呼叫方式。所以例如。如果它使用參數-sor執行--second-run,那麼它將執行重啟後的操作。在腳本中引入兩個主要功能,例如first_runsecond_run將有助於組織它。這是腳本的草圖:

  1. 檢查它的呼叫方式(帶或不帶-s參數)。
  2. 如果沒有-s

a) 做最初的事情。

b) 將第二次執行添加@reboot到 crontab。

c) 重新啟動。 3. 如果有-s

a)做重啟後的事情。

b) 從 crontab 中刪除重新執行。

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