ps -aux | grep "test.sh" #a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分

3、关闭当前后台运行的命令

  kill命令:结束进程
 (1)通过jobs命令查看jobnum,然后执行   kill %jobnum
 (2)通过ps命令查看进程号PID,然后执行  kill %PID
   如果是前台进程的话,直接执行 Ctrl+c 就可以终止了

4、前后台进程的切换与控制

 (1)fg命令
   功能:将后台中的命令调至前台继续运行
   如果后台中有多个命令,可以先用jobs查看jobnun,然后用 fg %jobnum 将选中的命令调出。
 (2)Ctrl + z 命令
   功能:将一个正在前台执行的命令放到后台,并且处于暂停状态
 (3)bg命令
   功能:将一个在后台暂停的命令,变成在后台继续执行
   如果后台中有多个命令,可以先用jobs查看jobnum,然后用 bg %jobnum 将选中的命令调出继续执行。

5、运行Python示例

[root@xxxxx nlp]# nohup python -u jbabs.py > out.log 2>&1 &
[1] 20087
[root@xxxxx nlp]# jobs
[1]+  Running                 nohup python -u jbabs.py > out.log 2>&1 &
  • 运行一个Python脚本,通常设置如下 $ python /data/python/server.py >python.log & 1、 > 表示把标准输出(STDOUT)重定向到 那个文件,这里重定向到了python.log 2、 & 表示在后台执行脚本 这样可以到达目的,但是,我们退出shell窗口的时候,必须用exit命令来退出,否则,退出之后,该进程也会随着shell的消失而消失(退出、关闭)

    • 使用nohup(not hang up): $ nohup python /data/python/server.py > python.log3 2>&1 & 1、1是标准输出(STDOUT)的文件描述符,2是标准错误(STDERR)的文件描述符 1> python.log 简化为 > python.log,表示把标准输出重定向到python.log这个文件

      2、2>&1 表示把标准错误重定向到标准输出,这里&1表示标准输出 , 为什么需要将标准错误重定向到标准输出的原因,是因为标准错误没有缓冲区,而STDOUT有。 这就会导致 commond > python.log ,2> python.log 文件python.log被两次打开,而STDOUT和 STDERR将会竞争覆盖,这肯定不是我门想要的