Linux nohup实现后台运行程序及查看 nohup与&

Linux nohup实现后台运行程序及查看(nohup与&)

本文主要介绍Linux nohup实现后台运行程序和查看(nohup和)。通过示例代码进行了非常详细的介绍,对大家的学习或工作有一定的参考价值。有需要的朋友下面和边肖一起学习。

1.后台执行

通常,运行在linux上的程序总是会执行。sh文件(。/sh文件),那么如果不影响当前CMD窗口的操作,需要在后台运行呢?

这时候就需要用nohup和命令来实现了。

nohup Java-server-xms 128m-xmx 512m-XX:metaspace size=128m-jar test . jar $ 1 $ 2 $ 3

(1) nohup

添加到命令的前面,表示正在运行的命令没有挂起。

(2)

加载命令的最后一部分表示该命令在后台执行。

2. 查看后台运行的命令

有两个命令要检查,ps和jobs。不同的是,乔布斯只能查看当前终端后台执行的任务,换了终端后就看不到了。ps命令适合查看即时进程的动态,可以看到其他终端的任务。

(1) jobs

[root@localhost测试]#作业

[1]-Nohup Java-dfile . encoding=UTF-8-DNAME=runtime-name-server-xms 128m-xmx 512m-xx:metaspace size=128m-xx:maxmetaspace size=256m-xx:heapduponou TofmemoryError-xx:useparnewgc-xx:useconcmsksweepgc-xx:cmssclassunloadingenabled-jartest . jar $ 1 $ 2 $ 3(工作目录:/home/ams/ams-server/test)

[2]正在运行nohup Java-dfile . encoding=utf-8-dname=container-name-server-xms 128m-xmx 512m-XX:metaspacesize=128m-XX:maxmetaspacesize=256m-XX:heap dump on out of memory error-XX:UseParNewGC-XX:useconcmscarksweepgc-XX:cmssclassunloadingenabled-jar test1 . jar $ 1 $ 2 $ 3

后台运行两个进程,使用作业后显示。“”代表最近的任务(当前任务),“-”代表上一个任务。

只有当nohup和在当前命令行中使用时,jobs命令才能显示它。如果将它们写入。sh脚本,然后执行该脚本,它们将不会显示。

例如,执行以下脚本后,无法显示作业:

#!/bin/bash

nohup Java-dfile . encoding=UTF-8-Dname=Runtime-Name-server-xms 128m-xmx 512m-XX:MetaspaceSize=128m-XX:MaxMetaspaceSize=256m-XX:HeapDumpOnOutOfMem or error-XX:UseParNewGC-XX:useconcmsksweepgc-XX:cmssclassunloadingenabled-jar test . jar $ 1 $ 2 $ 3

(2) ps命令

[root@localhost测试]# ps -aux|grep java

root 21219 0.3 3.9 6258172 148900 pts/0 Sl 10:08 0:02 Java-dfile . encoding=UTF-8-Dname=Runtime-Name-server-xms 128m-xmx 512m-XX:MetaspaceSize=128m-XX:MaxMetaspaceSize=256m-XX:heapdumnoutofemoryerror-XX:UseParNewGC-XX:useconcmskewepgc-XX:cmssclassunloadingenabled-jar test

root 21662 0.2 3.0 5041008 116648 pts/0 Sl 10:10 0:01 Java-dfile . encoding=UTF-8-Dname=Container-Name-server-xms 128m-xmx 512m-XX:MetaspaceSize=128m-XX:MaxMetaspaceSize=256m-XX:HeapDu mpOnOutOfMemoryError-XX:UseParNewGC-XX:useconmarkswepgc-XX:cmssclassunloadingenabled-jar

root 23761 0.0 0.0 112664 972 pts/0S 10:19 0:00 grep-color=auto Java

这是查看进程的常用命令,我就不多说了。

a:显示所有节目u:以面向用户的格式显示所有节目x:不按终端区分显示所有节目。

3. 关闭当前后台运行的程序

Kill命令

(1)通过jobs命令检查jobnum,然后执行kill %jobnum。

(2)通过ps命令检查进程号PID,然后执行kill %PID。

如果是前台进程,可以直接执行Ctrl C终止。

4. 前后台进程的切换与控制

(1)fg命令

将后台的命令转移到前台继续运行。

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

(2)Ctrl z命令

把前台正在执行的命令放到后台,处于挂起状态。

(3)bg命令

更改在后台暂停的命令,以便在后台继续执行。

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

[root@localhost测试]#作业

[1]-运行中nohup Java-dfile。encoding=utf-8-dname=runtime-name-xms 128m-xmx 512m-xx:meta pacesize=128m-xx:maxmeta pacesize=256m-xx:heapdumponotfmemoryerror-xx:useparnewgc-xx:useconcusmarkswepgc-xx:cmclassunloadingenabled-jar test。罐子$ 1 $ 2 $ 3(工作目录:/home/test)

[2]运行中nohup Java-dfile。encoding=utf-8-dnname=container-name-xms 128m-xmx 512m-xx:meta pace size=128m-xx:maxmetapacesize=256m-xx:heapdumponotfmemoryerror-xx:useparnewgc-xx:useconcusmarkswepgc-xx:cmclassunloadingenabled-jar test 1 .罐子$ 1 $ 2 $ 3

//使用fg(最终用户)后,将任务2调至前台运行

[root@localhost测试]# fg 2

nohup Java-dfile。encoding=utf-8-dnname=container-name-xms 128m-xmx 512m-xx:meta pace size=128m-xx:maxmetapacesize=256m-xx:heapdumponotfmemoryerror-xx:useparnewgc-xx:useconcusmarkswepgc-xx:cmclassunloadingenabled-jar test 1 .罐子$ 1 $ 2 $ 3

Z

//使用ctrl Z后,将任务2放置到后台,并暂停

[2]已停止nohup Java-dfile。encoding=utf-8-dnname=container-name-xms 128m-xmx 512m-xx:meta pace size=128m-xx:maxmetapacesize=256m-xx:heapdumponotfmemoryerror-xx:useparnewgc-xx:useconcusmarkswepgc-xx:cmclassunloadingenabled-jar test 1 .罐子$ 1 $ 2 $ 3

//使用BG!保加利亚后,激活任务2的运行

[root@localhost测试]# bg 2

[2]nohup Java-dfile。encoding=utf-8-dname=container-name-server-XM 128m-xmx 512m-xx:meta pacesize=128m-xx:maxmeta pacesize=256m-xx:heapdumponotfmemoryerror-xx:useparnewgc-xx:useconcussweepgc-xx:cmclassunloadingenabled-jar test 1 .罐子$ 1 $ 2 $ 3

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

Linux nohup实现后台运行程序及查看 nohup与&