ubuntu16.04 开启后台程序守护

在指令运行的过程中,可能有一下三种情况造成指令中止:

  1. 指令运行出错
  2. 我们用Ctrl+C发送了中止信号,中止了指令继续运行
  3. 关闭了终端,造成终端下运行的指令中止

那么我们今天不讨论第一种情况,着重看下面两种如何避免;那么我们就要学习nohup和&的用法和区别了,接下我们来运行下面这段程序,做几个实验来实验一下:

import time

n = 0
while 1:
    n += 1
    print(n)
    time.sleep(1)

分别用nohup和&对程序进行守护,然后用2、3两种方式中止程序,看看会出现什么效果:

  1. 用nohup守护,用Ctrl+C中止

    这里都做了哪些事情呢?
          1) 查看了当前进程,是没有python程序在运行的
          2) 用nohup守护运行了python3 test.py,发现用nohup运行指令,其结果会输出到nohup.out中
          3) 然后用Ctrl+C中止了程序的运行
          4) 再用ps指令查看了当前进程,发现还是没有
          5) 最后输出nohup.out中的内容,发现程序确实是在运行的
    结论:nohup守护不了Ctrl+C的中止
  2. 用nohup守护,用关闭终端中止


    这里又做了哪些事情呢?
          1) 查看了当前进程,是没有python程序在运行的
          2) 用nohup守护运行了python3 test.py
          3) 然后通过关闭终端中止了程序的运行
          4) 再打开了一个终端
          5) 用ps指令查看了当前进程,发现还在继续运行
    结论:nohup可以守护关闭终端造成的中止
  3. 用&守护,用Ctrl+C中止

    这里做了哪些事情呢?
          1) 查看了当前进程,是没有python程序在运行的
          2) 用&守护运行了python3 test.py
          3) 然后通过Ctrl试图中止程序的运行
          4) 发现还在继续运行
    结论:&可以守护Ctrl+C的中止
  4. 用&守护,用关闭终端中止


    这里又做了哪些事情呢?
          1) 继续上面的操作
          2) 关闭了终端
          3) 重新打开了一个终端,查看进程,发现进程没有了
    结论:&不可以守护关闭终端造成的中止

敲黑板,记笔记了:

  1. 我们可以用 ps -aux 来查看进程
  2. 我们可以用 kill 进程id(PID),来结束进程
  3. nohup 守护不了Ctrl+C的中止
    nohup 可以守护关闭终端造成的中止

    & 可以守护Ctrl+C的中止
    & 不可以守护关闭终端造成的中止
  4. 那我们是不是可以来个组合拳呢?
    nohup python3 test.py &



    发现真的可以,接下来就再也不怕手贱中止程序了,如果真的要中止,可以通过kill来实现;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值