本文首发于我的个人博客Suixin's Blog
原文: https://suixinblog.cn/2018/11/nohup.html 作者: Suixin
一些时间长的命令经常需要在后台运行,但苦于通常我们都是通过PC去连接服务器,一直保持ssh
连接是不太现实的,这时就需要一些命令使得断开ssh
连接后服务器依旧在运行命令。
命令后面加&
在后台运行
用法:
python test.py > test.log 2>&1 &
其中:
>
表示将标准输出(STDOUT)重定向到test.log
文件;
2>&1
表示将标准错误(STDERR)重定向到标准输出。1
是标准输出的文件描述符,2
是标准错误的文件描述符;
&
表示将程序放到后台运行。
这样,我们已经将命令放到了后台执行。但是,只要我们断开ssh
连接,进程将会被终止,是因为我们运行命令的session
属于ssh
的子进程。
nohup
命令
使用nohup
即可实现断开ssh
连接命令也不会被终止。nohup
: no hang up.
用法:
nohup python test.py > test.log 2>&1 &
运行之后可通过jobs
查看正在运行的任务。
重新登录之后使用ps和grep命令可查看后台进程,如ps aux|grep python
可查看所有关于python
的进程。
注:以上方法适用于大部分命令,将下载和上传的任务放到后台也是很方便的~
参考
http://iyuluo.com/2017/11/01/Linux-%E4%B8%8B%E5%90%8E%E5%8F%B0%E8%BF%90%E8%A1%8CPython%E8%84%9A%E6%9C%AC/
https://www.ibm.com/developerworks/cn/linux/l-cn-nohup/
网友评论