Linux下用nohup+&把程序放在后台不挂断地运行及进程终止

1. 后台运行

nohup python -u python_file.py > output.log 2>&1 &
  • nohup:no hang up 不挂断的运行
  • -u:不使用输出缓冲,可以在.log文件中直接看到打印输出,不使用-u则打印输出有延迟
  • python python_file.py:运行需要运行的文件
  • ‘>’:覆盖式重定向,正常输出是把内容输出到显示器上,重定向是把内容输出到文件中
  • 0表示标准输入,1表示标准输出,2表示标准错误输出
  • output.log:省略了1实际为1 > output.log,把标准输出重定向到output.log文件中
  • 2>&1:将标准错误输出重定向到标准输出中(再和标准输出一起重定向到output.log文件中,防止相互覆盖),&表示引用
  • 最后的&:表示后台运行

2. 退出ssh

  • 要用exit,不要直接断开

3. 查看进程

  • top:q退出
  • htop:动态的,q退出
  • ps:
    ---- 查看当前用户的进程:ps ux
    ---- 查看全部用户的进程:ps aux

4. 终止进程

  • kill PID:(默认kill -15),系统会发送一个SIGTERM信号给对应的程序,大部分程序接收到SIGTERM信号后,会先释放自己的资源,然后再停止
  • kill -9 PID:系统给对应程序发送的信号是SIGKILL,即exit,exit信号不会被系统阻塞,所以kill -9能顺利杀掉进程

参考:https://blog.csdn.net/Laiguibing521/article/details/90316703
参考:https://www.cnblogs.com/mydesky2012/p/11997069.html
参考:https://www.cnblogs.com/keystone/p/11159665.html
参考:https://www.cnblogs.com/jintaoblogs/p/11360474.html

你可能感兴趣的:(Linux下用nohup+&把程序放在后台不挂断地运行及进程终止)