本文主要介绍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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。