重新启动后恢复 Bash 脚本

重新启动后恢复 Bash 脚本

我有一个 bash 脚本,它更改操作系统和数据库中的一些配置,需要重新启动,然后需要运行其他命令。像这样的东西:

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

该怎么做才能实现这一点?

(堆栈交换上还有另外 2 个类似的问题,Q1Q2但他们很久以前就被问过,用户不再主动向他们提问。我又问了一遍,看看有没有新的想法和答案)

答案1

如果您可以修改脚本并且可以使用crontab,那么您可以使用@reboot计时来crontab重新运行脚本。脚本的行为是双重的,具体取决于它的调用方式。所以例如。如果它使用参数-s或运行--second-run,那么它将执行重新启动后的操作。在脚本中引入两个主要函数(如first_run和 )second_run将有助于组织它。这是脚本的草图:

  1. 检查它是如何调用的(带或不带参数-s)。
  2. 如果没有-s

    a) 做最初的事情。

    b) 将第二次运行添加@reboot到 crontab。

    c) 重新启动。

  3. 如果与-s

    a) 执行重启后的操作。

    b) 从 crontab 中删除重新运行。

相关内容