暂停和恢复Bash脚本

时间:2012-03-23 02:28:10

标签: bash

有没有办法暂停Bash脚本,然后再次恢复它,例如重新启动计算机后?

5 个答案:

答案 0 :(得分:2)

做AFAIK的唯一方法是:

  1. 将任何变量或其他脚本上下文信息保存在临时文件中,以便在暂停之前建立脚本的状态。不用说,脚本应该包含一个检查此文件的机制,以了解先前的执行是否已暂停,如果是,则获取所有上下文并相应地恢复。
  2. 重新启动后,再次手动运行脚本,或者让脚本自动从启动配置文件脚本运行。

答案 1 :(得分:1)

尝试使用Ctrl-Z暂停命令。我不认为你可以暂停它然后在重新启动后恢复,除非你以某种方式保持状态。

答案 2 :(得分:1)

重启后,您无法暂停和恢复相同的脚本,但脚本可以安排在稍后的某个时间运行另一个脚本。例如,它可以创建一个init脚本(或一个cron作业,或一个登录脚本等),其中包含您要延迟的任务,然后将其自行删除。

答案 3 :(得分:1)

趣...

您可以使用CTRL-Z暂停BASH中的作业,但重启后无法恢复。重新启动会初始化计算机,并且已终止暂停的进程。

但是,可以通过'kill -QUIT $ pid and then use gdb`强制进程进入coredump来重启脚本。我试了一会儿,却无法做到。也许其他人可以指出方向。

答案 4 :(得分:1)

如果这适用于您的脚本及其执行的作业,请向其添加检查点 - 这意味着在继续之前将进程的所有状态保存到磁盘的位置。然后让每个单独的部件检查他们必须生成的输出是否已经存在,如果是,则跳过运行。这应该使脚本的重新运行几乎与从执行中的完全相同位置恢复一样有效。

或者,在VM中运行脚本。在关闭真实系统之前冻结VM并在之后恢复它。不过,它可能需要一个非常庞大而复杂的shell脚本才能使它值得。