在Linux中查看及终止正在运行的后台程序方法

linux 任务管理-后台运行与终止

fg、bg、jobs、&、ctrl + z命令

一、 &

加在一个命令的最后,可以把这个命令放到后台执行 ,如gftp &,

二、ctrl + z

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

三、jobs

查看当前有多少在后台运行的命令

jobs

-l选项可显示所有任务的PID,jobs的状态可以是running, stopped,

Terminated,但是如果任务被终止了(kill),shell

从当前的shell环境已知的列表中删除任务的进程标识;也就是说,jobs命令显示的是当前shell环境中所起的后台正在运行或者被挂起的任务信息;

四、fg

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

如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

五、bg

将一个在后台暂停的命令,变成继续执行 (在后台执行)

如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

将任务转移到后台运行:

先ctrl + z;再bg,这样进程就被移到后台运行,终端还能继续接受命令。

概念:当前任务

如果后台的任务号有2个,[1],[2];如果当第一个后台任务顺利执行完毕,第二个后台任务还在执行中时,当前任务便会自动变成后台任务号码“[2]”

的后台任务。所以可以得出一点,即当前任务是会变动的。当用户输入“fg”、“bg”和“stop”等命令时,如果不加任何引号,则所变动的均是当前任务

进程的终止

后台进程的终止:

方法一:

通过jobs命令查看job号(假设为num),然后执行kill %num

方法二:

通过ps命令查看job的进程号(PID,假设为pid),然后执行kill pid

前台进程的终止:

ctrl+c

kill的其他作用

kill除了可以终止进程,还能给进程发送其它信号,使用kill -l 可以察看kill支持的信号。

SIGTERM是不带参数时kill发送的信号,意思是要进程终止运行,但执行与否还得看进程是否支持。如果进程还没有终止,可以使用kill -SIGKILL pid,这是由内核来终止进程,进程不能监听这个信号。

进程的挂起

后台进程的挂起:

在solaris中通过stop命令执行,通过jobs命令查看job号(假设为num),然后执行stop %num;

在redhat中,不存在stop命令,可通过执行命令kill -stop PID,将进程挂起;

当要重新执行当前被挂起的任务时,通过bg %num 即可将挂起的job的状态由stopped改为running,仍在后台执行;当需要改为在前台执行时,执行命令fg %num即可;

前台进程的挂起:

ctrl+Z;

以上这篇在Linux中查看及终止正在运行的后台程序方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Linux后台运行Python程序的几种方法讲解

    1.第一种方法是直接用unhup命令来让程序在后台运行,命令格式如下: unhup python 文件名.py (> ***.log )& 在这个命令中,python指定我们要执行的文件为python文件,后面的文件名.py即是我们要执行的文件.括号内容表示可以将平时输出到控制台中的内容重定向到*.log这个文件中,这个是可选的,如果没有这个,则会默认输出到nohup.out文件中.括号后面你的&表示后台运行. 2.第二种方法是写一个脚本,然后把脚本提交给服务器,让服务器在后台运行脚

  • 详解linux后台运行和关闭、查看后台任务

    fg.bg.jobs.&.nohup.ctrl+z.ctrl+c 命令 一.& 加在一个命令的最后,可以把这个命令放到后台执行,如 watch  -n 10 sh  test.sh  &  #每10s在后台执行一次test.sh脚本 二.ctrl + z 可以将一个正在前台执行的命令放到后台,并且处于暂停状态. 三.jobs 查看当前有多少在后台运行的命令 jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated.但是如

  • Linux 如何快速找到运行中的进程

    1 进程概述 通俗的讲程序是一个包含可以执行代码的静态的文件.进程是一个开始执行但是还没有结束的程序的实例. 当程序被系统调用到内存以后,系统会给程序分配一定的资源(内存,设备等等)然后进行一系列的复杂操作,使程序变成进程以供系统调用. 1.1 进程的分类 按照进程的功能和运行的程序分类,进程可划分为两大类: 系统进程 可以执行内存资源分配和进程切换等管理工作,而且该进程的运行不受用户的干预,即使是root用户也不能干预系统进程的运行. 用户进程 通过执行用户程序.应用程序或内核之外的系统程序而

  • 在Linux中查看及终止正在运行的后台程序方法

    linux 任务管理-后台运行与终止 fg.bg.jobs.&.ctrl + z命令 一. & 加在一个命令的最后,可以把这个命令放到后台执行 ,如gftp &, 二.ctrl + z 可以将一个正在前台执行的命令放到后台,并且处于暂停状态,不可执行 三.jobs 查看当前有多少在后台运行的命令 jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated,但是如果任务被终止了(kill),shell 从当前的shell环境

  • 在Linux中查看所有正在运行的进程的方法

    可以使用ps命令.它能显示当前运行中进程的相关信息,包括进程的PID.Linux和UNIX都支持ps命令,显示所有运行中进程的相关信息. ps命令能提供一份当前进程的快照.如果想状态可以自动刷新,可以使用top命令. ps命令 输入下面的ps命令,显示所有运行中的进程: # ps aux | less 其中, -A:显示所有进程 a:显示终端中包括其它用户的所有进程 x:显示无控制终端的进程 任务:查看系统中的每个进程. # ps -A # ps -e 任务:查看非root运行的进程 # ps

  • 浅析Linux中使用nohup及screen运行后台任务的示例和区别

    使用SSH终端(比如putty,xshell)连接Linux服务器上运行比较耗时任务,可能需要几个小时甚至几天才能完成,这时候终端被占据,我们还要做其他的任务呢,所以需要将这一类耗时任务放到后台来跑,只需要记录好日志就行了,有下面这些常用方法来实现这个需求. command & 在终端输入command &运行,这时候使用Ctrl + C中止命令将会失效,因为对&后台运行SIGINT1信号免疫,程序会继续运行. 但如果你直接关掉终端, 进程将跟着中止. 可见,使用&后台运行

  • Linux中jar包启动和jar包后台运行的实现方式

    Linux 运行jar包命令如下: 方式一: java -jar shareniu.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar shareniu.jar & &代表在后台运行. 特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行. 继续改进,如何让窗口关闭时,程序仍然运行? 方式三 nohup java -jar shareniu.jar & nohup 意思是不挂断运行

  • 在Linux中安装ASPNET.Core3.0运行时的示例代码

    # 以下示例适用于x64位runtime v3.0.0 mkdir /runtimes cd /runtimes wget https://download.visualstudio.microsoft.com/download/pr/b0c44e05-b7a1-4221-94ec-a0c0d3a11eed/afc61567dd6db8f097e244871889458c/aspnetcore-runtime-3.0.0-linux-x64.tar.gz mkdir aspnetcore-run

  • Linux中查看物理CPU个数、核数、逻辑CPU个数的方法

    # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l # 查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep "cpu cores"| uniq # 查看逻辑CPU的个数 cat /proc/cpuinfo

  • 详解Linux中查看jdk安装目录、Linux卸载jdk、rpm命令、rm命令参数

    一.查看jdk安装目录 [root@node001 ~]# whereis java java: /usr/bin/java /usr/local/java #java执行路径 [root@node001 ~]# which java /usr/bin/java #查看JDK安装路径 [root@node001 ~]# echo $JAVA_HOME /usr/local/java/jdk1.7.0_80 [root@node001 ~]# echo $PATH /usr/local/sbin:

  • Linux下查看.so和可执行文件是否debug编译的方法(必看)

    今天同事问我,如何判断一个.so是否是debug编译的. 我记得以前自己是用file来查看一个.so,根据是否包含"not stripped"来判断该.so是否是debug编译的,于是就没做实验就回答. 然而,stripped/not stripped并不是debug/release编译的判断标准. 我对debug和release的.so运行file后,得出几乎相同的输出, 都是not stripped. 所以我算是误导同事了. 根据<Computers Systems - A

  • Linux中不同用户之间复制文件的两个方法

    前言 考虑如下情景:foo用户home目录下有一文件file.txt,要将其copy至bar用户的home目录.Linux对用户home目录有严格的权限限制,非owner用户或者同group用户无权限读写,除非是root(至高无上的root).如果没有root权限,有什么办法把file.txt 复制到bar用户的home目录下呢? 想到两个办法. 第一个办法,先用foo用户登录,把文件copy到系统临时目录/tmp,然后切换到bar用户,再从系统临时目录/tmp把文件copy到自己的home目录

  • Linux 中shell脚本设置开头固定格式的实现方法

    Linux 之shell脚本设置开头固定格式 每次进入shell都要设置开头,很麻烦,现修改vim配置文件即可. [root@node01 ~]vim .vimrc 将下列内容复制进文件 set ignorecase set cursorline set autoindent autocmd BufNewFile *.sh exec ":call SetTitle()" func SetTitle() if expand("%:e") == 'sh' call se

随机推荐