美文网首页
linux后台执行命令 &和nohup

linux后台执行命令 &和nohup

作者: Fizz翊 | 来源:发表于2018-11-23 01:02 被阅读10次

    欢迎来我的个人博客:fizzyi

    在学习Python的过程中,有几次都遇到程序跑到一半就必须关机的情况,今天跑爬虫数据量太大需要跑几个小时,于是上网搜索的一下资料。

    &

    当前台运行某个程序时,终端被占用,想做一些其他事情无法做的时候,可以在命令后面加上&实现后台运行。

    例如:python3 run.py &

    在后台运行时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会一直等待输入,但是你又没有地方输入。不过,这种方法后台运行一样会将结果输出到屏幕上,干扰工作。如果放在后台运行的工作会产生大量的输出,最好使用下面的方法把它的输出重定向某个文件中。

    command > out.file 2>&1 &
    

    当成功提交一个进程后,就会显示出一个进程号,可以用它来监控该进程,或者杀死它。

    ps -ef | gerp 进程号 
    #或者
    kill -9 进程号
    

    nohup

    使用&命令后,程序被提交到后台运行,当前终端没有被占用,但是一旦把当前控制台关掉,程序就会停止运行。

    而nohup命令可以在你退出控制台后继续运行相应的进程。

    Nohup 就是不挂起的意思 no hang up

    一般形式为:

    nohup command &
    

    如果使用nohup命令来执行程序,那么在缺省情况下该程序的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件

    nohup command > outfile.file 2>&1 &
    

    指令解析:

    • Command > outfile.file 是将command的输出重定向到outfile.file文件,即输出内容不打印到屏幕上,而是输出到outfile.file文件中。
    • 2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了outfile.file文件,即将标准出错也输出到outfile.file中。最后一个&,是让该命令在后台执行。

    相关文章

      网友评论

          本文标题:linux后台执行命令 &和nohup

          本文链接:https://www.haomeiwen.com/subject/myldqqtx.html