Linux让程序后台运行命令之screen与nohup
一、nohup
nohup时间长了会断掉 所以建议使用screen
nohup 命令 &
如果运行成功刚默认会将标准输出重定向到当前目录的nohup.out文件中,查看此文件,可以了解运行的进度
时间长了会断掉
就是ssh 打开以后,bash等都是他的子程序,一旦ssh关闭,系统将所有相关进程杀掉!! 导致一旦ssh关闭,执行中的任务就取消了
二、screen
1、安装screen
yum install screen
2、创建screen会话
screen -S 自己定义个会话名 最好记住 方便以后回到会话中
然后执行命令
3、暂时离开,保留screen会话中的任务或程序
当需要临时离开时(会话中的程序不会关闭,仍在运行)可以用快捷键Ctrl+a d(即按住Ctrl,依次再按a,d)
4、恢复screen会话
当回来时可以再执行执行:screen -r 会话名 即可恢复到离开前创建的lnmp会话的工作界面。
如果忘记或者刚开始没有指定会话名,执行screen -ls列出当前的会话列表;
执行screen , 按任意键进入子界面;
我用ping命令开始执行,如果下班了,但是想关闭ssh以后ping继续运行,那么按ctrl+a 再按d 这样暂停了子界面,会显示[detached]的字样,这时候 我回到了父界面;
用screen –ls查看目前子界面的状态
screen -ls
There is a screen on: 22292.pts-3.free (Detached)
1 Socket in /tmp/screens/S-root。
这里的22292其实是子界面的pid号;
如果回到子界面 用screen –r 22292,一下子弹到了ping 的子界面;