有没有办法暂停一个Bash脚本,然后再次恢复它,例如在计算机重新启动后?暂停和恢复一个Bash脚本
3
A
回答
1
尝试Ctrl-Z来暂停命令。我不认为你可以暂停它,然后在重新启动后恢复,除非你保持状态。
1
您不能暂停和重启后恢复相同剧本,但剧本能安排另一个脚本在以后的某个时间运行。例如,它可以创建一个init脚本(或一个cron作业或一个登录脚本等),其中包含您想要推迟的任务,然后自行删除。
2
做AFAIK的唯一方法:
- 保存的任何变量,或其他脚本上下文信息在临时文件就在暂停之前建立脚本的状态。毋庸置疑,脚本应该包含一个机制来检查该文件,以确定前一次执行是否已暂停,如果是,则获取所有上下文并相应地继续。
- 重启后,再次手动运行该脚本,或者让脚本自动从启动配置文件脚本运行。
1
耐人寻味......
您可以暂停使用CTRL-Z BASH一份工作,但你不能在重新启动后恢复。重新启动将初始化机器,并终止暂停的进程。
但是,可能会通过'kill -QUIT $ pid and then use
gdb`强制进程进入coredump以重新启动脚本。我尝试了一段时间,但无法做到这一点。也许别人可以指出方向。
1
如果这适用于您的脚本及其所做的工作,请将检查点添加到它 - 这意味着在继续之前将所有进程状态保存到磁盘的位置。然后让每个单独部分检查他们必须产生的输出是否已经存在,如果是,则跳过运行。这应该使得脚本的重新运行几乎与从执行中完全相同的地方恢复一样高效。
或者,在虚拟机中运行脚本。在关闭真实系统之前冻结虚拟机并在之后恢复。不过,这可能需要一个非常庞大而复杂的shell脚本才能实现。
相关问题
- 1. “暂停”和“恢复”一个ng-repeat
- 2. VB.Net暂停和恢复对下一个
- 3. 暂停和恢复流
- 4. 暂停和恢复BackgroundWorker
- 5. 暂停和恢复AsyncTasks? (Android)
- 6. 暂停和恢复SKScene
- 7. 暂停和恢复ASINetworkQueue
- 8. 暂停和恢复功能
- 9. WebRTC暂停和恢复流
- 10. 暂停和恢复一个C++线程在另一个
- 11. 暂停/恢复jquery .animate()?
- 12. Cocos2d引擎 - 暂停,恢复
- 13. 暂停/恢复线程?
- 14. 暂停/恢复任务
- 15. Android应用暂停恢复
- 16. Android暂停/恢复服务
- 17. lftp暂停和恢复下载
- 18. 安全地暂停和恢复线程
- 19. 如何暂停和恢复Jenkins构建
- 20. 音频录制|暂停和恢复
- 21. 如何暂停和恢复GameLoop?
- 22. 暂停和恢复Foreach循环
- 23. 如何暂停和恢复JavaScript?
- 24. 如何暂停和恢复线程
- 25. 如何暂停和恢复音频
- 26. 倒数计时暂停和恢复
- 27. 暂停和恢复AnimatorSet Api <19
- 28. 如何暂停和恢复UIView动画?
- 29. Android暂停和恢复教程
- 30. Twilio录制:暂停和恢复