后台执行命令:nohup的使用
当我们使用ssh连接远程服务器工作时,可能希望在断开ssh连接时仍旧能够维持一个作业的运行,例如对于密集访问磁盘的进程,我们更希望它能够在每天的非负荷高峰时间段运行(例如凌晨)。为了使这些进程能够在后台运行,有几种选择方法可供使用。
nohup命令
该命令的一般形式为: nohup command &
,nohup命令可以在你退出帐户之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。
如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件: nohup command > myout.file 2>&1
- Ctrl + z :可以将一个正在前台执行的命令放到后台,并且处于暂停状态。
- Ctrl + c:终止前台命令。
- jobs:查看当前有多少在后台运行的命令。
jobs -l
选项可显示所有任务的PID,jobs的状态可以是running
,stopped
,Terminated
。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。 - bg:将一个在后台暂停的命令,变成在后台继续执行。如果后台中有多个命令,可以用
bg %jobnumber
将选中的命令调出。 - fg:将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用
fg %jobnumber
(是命令编号,不是进程号)将选中的命令调出。