使用ssh工具将Linux任务放入后台运行,且断开连接不退出。

有时候我们在服务器上执行某个脚本的时候执行时间会很长,如果ssh中断了连接,那么任务也会随之退出。  总不能一直守在电脑屏幕跟前看着吧,为了避免任务执行到一半因为网络问题突然中断的情况,我们需要把任务放入后台运行。使用如下方式执行脚本即可解决这个问题。

使用执行laravel框架中的命令举例:
这里使用php 执行了 laravel框架中的artisan脚本 ,传入了要执行的具体的业务命令”get-data” ,并且携带了”get-data”命令需要的参数”–data-type=a”

这里解释一下 “&” 和 “nohup”的区别。

&
表示在后台执行脚本,但是我们退出shell窗口或者网络断开连接的话,该进程也会随之退出。

nohup
英文全称 no hang up(不挂起),当退出sheel窗口或者断开连接之后,任务不会结束,会继续执行。 直到脚本中的逻辑执行完毕,自动结束。

通常把这两个命令结合起来使用, 就是上面示例中的样子。  至于 “/dev/null 2>&1”  的意思就是不记录任何控制台的输出。  如果要把控制台的输出记录下来, 指定某个文件即可。

发表评论

邮箱地址不会被公开。 必填项已用*标注