通过 CTRL+X 或 CTRL+C 中止时继续执行 bash 脚本

通过 CTRL+X 或 CTRL+C 中止时继续执行 bash 脚本

我相信这是一个非常菜鸟的问题,我已经尽一切努力避免在这里问它,但我在整个互联网上的任何地方都没有找到答案。

继续给我投反对票,但请回答我当通过 CTRL+X 或 CTRL+C 中止时,如何保持长时间运行所需的 bash 脚本的执行?

  • 我想执行命令$ sh myscript.sh并通过 CTRL+X / CTRL+C 释放我的终端,脚本应根据需要继续运行接下来的 10-20 分钟。

  • 我想执行 php 脚本,$ php /path/to/myphpscript.php并通过 CTRL+X / CTRL+C 释放我的终端,脚本应根据需要继续运行接下来的 2 小时。

怎样才能拥有呢?

Cronjob 不是我的解决方案。

答案1

一旦你的终止工作使用CTRL+C它被终止,你不能告诉一个死掉的工作继续并继续它原来的位置。

正确的术语是在后台运行作业,您可以提前执行此操作:

 ./script &

您可以将其与 结合使用,nohup使进程免受挂起的影响,即使您从 bash 会话注销,它也会继续运行:

 nohup ./script &

如果脚本已经在运行,您可以暂停前台作业+并指示CTRLZ在后台继续bg

本章还有很多内容作业控制 来自 bash 手册。

答案2

您可以使用屏幕实用程序。来自手册页:

描述 Screen 是一个全屏窗口管理器,它在多个进程(通常是交互式 shell)之间复用物理终端。

相关内容