2012-03-23 117 views

回答

1

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

1

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

2

做AFAIK的唯一方法:

  1. 保存的任何变量,或其他脚本上下文信息在临时文件就在暂停之前建立脚本的状态。毋庸置疑,脚本应该包含一个机制来检查该文件,以确定前一次执行是否已暂停,如果是,则获取所有上下文并相应地继续。
  2. 重启后,再次手动运行该脚本,或者让脚本自动从启动配置文件脚本运行。
1

耐人寻味......

您可以暂停使用CTRL-Z BASH一份工作,但你不能在重新启动后恢复。重新启动将初始化机器,并终止暂停的进程。

但是,可能会通过'kill -QUIT $ pid and then use gdb`强制进程进入coredump以重新启动脚本。我尝试了一段时间,但无法做到这一点。也许别人可以指出方向。

1

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

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