我有一个正在运行一些软件包更新的脚本,我想在完成后重新启动。唯一的问题是重启后必须执行一些操作。显然,一旦系统重新启动,该脚本将不再运行。
重新启动后如何继续执行脚本正在执行的操作?是否有任何设置显示 nextBoot 或类似的内容,我可以在其中插入脚本其余部分的内容?
我知道 /etc/init.d 但这个脚本最多每月只运行一次,我不希望整个脚本在启动时运行。
提前致谢!
答案1
要涵盖的操作系统范围相当广泛,因此我的一般建议是为每个调用您维护的“第 2 阶段”脚本的操作系统安装“init”脚本。此“第 2 阶段”脚本检查更新后脚本是否存在;如果存在,则运行它,然后删除它。您的“第一阶段更新”脚本将在完成后和重新启动之前安装此更新后脚本。
答案2
你可以使用 cron 的@重启扩展(假设您使用的 cron 支持它们)。例如,预重新启动脚本可以在重新启动之前创建一个临时文件,重新启动后脚本会在运行脚本的其余部分之前检查该临时文件。
答案3
您可以在脚本中创建锁定文件(即 /var/local/yourscript),并在每次重新启动( cron @reboot)后检查该文件是否存在,如果存在则运行第二个脚本(或第一个带有某些参数的脚本)。