zoukankan      html  css  js  c++  java
  • Linux查看和关闭后台运行程序的方法

    运行.sh文件

    直接用./sh 文件就可以运行,但是如果想后台运行,即使关闭当前的终端也可以运行的话,需要nohup命令和&命令。

    &命令

    功能:加在一个命令的最后,可以把这个命令放在后台执行

    nohup命令

    功能:不挂断的运行命令
    被运行的程序的输出将不会在终端中显示,默认会输出到当前目录下的nohup.out文件中,如果当前目录nohup.out不可写,则输出重定向到$home/nohup.out文件。如果没有文件能被创建或追加写入,则要执行的命令将不会执行。

    nohup command &
    nohup command >log.txt 2>&1 &	指定输出实例
    nohup python2 -m SimpleHTTPServer 20673 >log.txt &  指定输出实例?学长当时这样说的。
    

    直接通过command获取进程id并直接kill掉

    ps aux |grep command |grep -v grep |awk '{print $1}' |xargs kill -9 
    

    查看当前后台运行的命令

    有两个命令可以用,jobs和ps,区别是jobs用于查看当前终端后台运行的任务,换了终端就看不到了。而ps命令用于查看瞬间进程的动态,可以看到别的终端运行的后台进程。

    jobs命令

    功能:查看当前终端后台运行的任务
    jobs -l选项可显示当前终端所有任务的PID,jobs的状态可以是running,stopped,Terminated。+ 号表示当前任务,- 号表示后一个任务。

    ps命令

    功能:查看当前的所有进程

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

    关闭当前后台运行的命令

    kill命令:结束进程

    通过jobs命令查看jobnum,然后执行 kill %jobnum

    通过ps命令查看进程号PID,然后执行 kill %PID

    如果是前台进程的话,直接执行 Ctrl+c 就可以终止了

    前后台进程的切换与控制

    fg命令

    功能:将后台中的命令调至前台继续运行

    如果后台中有多个命令,可以先用jobs查看jobnun,然后用 fg %jobnum 将选中的命令调出。

    Ctrl + z 命令

    功能:将一个正在前台执行的命令放到后台,并且处于暂停状态

    bg命令

    功能:将一个在后台暂停的命令,变成在后台继续执行

    如果后台中有多个命令,可以先用jobs查看jobnum,然后用 bg %jobnum 将选中的命令调出继续执行。

  • 相关阅读:
    Python unittest单元测试框架总结
    RabbitMQ集群搭建
    mysql之mysqldump——备份与还原
    新版本Ubuntu本地提权漏洞复现
    Flash 零日漏洞复现(CVE-2018-4878)
    申论之道
    上海失业金
    C# GUID有什么用?
    C#通过接口或者父类可以调用子类的方法或者属性吗?
    C# 按逗号分隔字符串&强制类型转换string转double
  • 原文地址:https://www.cnblogs.com/forforever/p/14089948.html
Copyright © 2011-2022 走看看