Linux nohup实现后台运行程序及查看(nohup与)
Linux nohup实现后台运行程序及查看(nohup与&)
更新时间:2019年09月11日 09:28:40 作者:猿的生活
这篇文章主要介绍了Linux nohup实现后台运行程序及查看(nohup与&),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
1. 后台执行
一般运行linux上的程序都是执行 .sh 文件(./sh文件),那如果不影响当前CMD窗口的操作,需要后台运行怎么办呢?
这时就需要借助 nohup 和 & 命令来实现。
nohup` `java -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -jar ``test``.jar $1 $2 $3 &
(1) nohup
加在一个命令的最前面,表示不挂断的运行命令
(2) &
加载一个命令的最后面,表示这个命令放在后台执行
2. 查看后台运行的命令
有两个命令可以来查看,ps 和 jobs。区别在于 jobs 只能查看当前终端后台执行的任务,换了终端就看不见了。而ps命令适用于查看瞬时进程的动态,可以看到别的终端的任务。
(1) jobs
[root@localhost test]# jobs
[1]- 运行中 nohup java -Dfile.encoding=UTF-8 -Dname=Runtime-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test.jar $1 $2 $3 &(工作目录:/home/ams/ams-server/test)
[2]+ 运行中 nohup java -Dfile.encoding=UTF-8 -Dname=Container-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar $1 $2 $3 &
先后起了两个后台运行的进程,使用jobs后都显示出来了。“+”代表最近的一个任务(当前任务),“-”代表之前的任务。
只有在当前命令行中使用 nohup和& 时,jobs命令才能将它显示出来。如果将他们写到 .sh 脚本中,然后执行脚本,是显示不出来的
比如执行下面这个脚本后,jobs显示不出来:
#!/bin/bash
nohup java -Dfile.encoding=UTF-8 -Dname=Runtime-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test.jar $1 $2 $3 &
(2) ps命令
[root@localhost test]# 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 -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test.jar
root 21662 0.2 3.0 5041008 116648 pts/0 Sl 10:10 0:01 java -Dfile.encoding=UTF-8 -Dname=Container-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar
root 23761 0.0 0.0 112664 972 pts/0 S+ 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查看jobnun,然后用 fg %jobnum 将选中的命令调出。
(2)Ctrl + z 命令
将一个正在前台执行的命令放到后台,并且处于暂停状态
(3)bg命令
将一个在后台暂停的命令,变成在后台继续执行
如果后台中有多个命令,可以先用jobs查看jobnum,然后用 bg %jobnum 将选中的命令调出继续执行。
[root@localhost test]# jobs
[1]- 运行中 nohup java -Dfile.encoding=UTF-8 -Dname=Runtime-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test.jar $1 $2 $3 &(工作目录:/home/test)
[2]+ 运行中 nohup java -Dfile.encoding=UTF-8 -Dname=Container-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar $1 $2 $3 &// 使用fg 后,将任务2调至前台运行
[root@localhost test]# fg 2
nohup java -Dfile.encoding=UTF-8 -Dname=Container-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar $1 $2 $3^Z
// 使用ctrl+Z后,将任务2放置到后台,并暂停
[2]+ 已停止 nohup java -Dfile.encoding=UTF-8 -Dname=Container-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar $1 $2 $3// 使用bg 后,激活任务2的运行
[root@localhost test]# bg 2
[2]+ nohup java -Dfile.encoding=UTF-8 -Dname=Container-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar $1 $2 $3 &
Linux nohup实现后台运行程序及查看(nohup与)相关推荐
- Linux实现后台运行程序及查看nohup jobs
一.& 加在一个命令的最后,可以把这个命令放到后台执行,如 watch -n 10 sh test.sh & #每10s在后台执行一次test.sh脚本 二.ctrl + z 可以将一 ...
- Linux 下后台运行程序,查看和关闭后台运行程序(转载)
1.运行.sh文件 直接用./sh 文件就可以运行,但是如果想后台运行,即使关闭当前的终端也可以运行的话,需要nohup命令和&命令. (1)&命令 功能:加在一个命令的最后,可以把这 ...
- 在linux前台和后台运行程序
为什么要在linux命令前加上 ./ 简述 在chinaunix 论坛里找到的答案 原来Quote: unix或linux中除了path系统变量外的目录下的命令都要加./ 修改用户的 .bash_pr ...
- Linux 下后台运行程序,查看和关闭后台运行程序
1.运行.sh文件 直接用./sh 文件就可以运行,但是如果想后台运行,即使关闭当前的终端也可以运行的话,需要nohup命令和&命令. (1)&命令 功能:加在一个命令的最后,可以把这 ...
- nohup和后台运行,进程查看及终止
1.nohup 用途:不挂断地运行命令. 语法:nohup Command [ Arg - ] [ & ] 无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup ...
- Linux终端下后台运行程序被Stopped的原因以及解决
一.问题以及原因 为设备写了一个测试WIFI连通性的C++小程序,登录设备后在终端运行程序,使其后台执行: ./AP_Connect & 终端打印此信息:[1]+ 已停止 ...
- [svc]后台运行程序screen or nohup
后台运行 方法1 & 方法2:screen screen –S lnmp à起个名字 进去后运行程序 Ctrl+ad à退出lnmp屏幕Scree –ls à查看Screen –r xxx à ...
- linux使用tmux后台运行程序
mtux用于后台挂载程序运行,避免由于远程连接本地断开导致程序运行停止的情况. 1.安装mtux apt-get install tmux -y 查看版本 tmux -V 1.切换到root权限 如果 ...
- linux 后台运行程序
前言 一般为了程序后台运行,我们需要使用nohup命令. 此时需要对程序运行时所产生的输出信息记录,因此就需要使用linux的信息输出命令 START 一个例子 比如要让redis-server程序后 ...
最新文章
- C++中的重载、覆盖、隐藏对比
- 熟悉交换机与路由器组网(图解)
- 纯JSP实现简单登录跳转
- OpenCV DIS光流OpticalFlow的实例(附完整代码
- python非阻塞输入_Python 命令行非阻塞输入的小例子
- 未声明spire。它可能因保护级别而不可访问_信息系统安全:访问控制技术概述...
- MySQL在Docker环境下运行基础
- PowerDesigner连接mysql逆向生成pdm
- android谷歌反地理,android – 谷歌地理编码服务是不可用的(协调地址)
- Unity3D ARPG网络游戏编程实践
- 别天天看看直播了,你知道如何用jmeter对直播间做压测吗
- java 泛型列表_如何在java中覆盖泛型列表返回类型
- CAM350简单编辑gerber文件(【增加一条线】 【复制元素】 【删除元素】)
- matlab绘制奈奎图,matlab画奈奎斯特图
- 使用itextpdf切割、合并pdf以及合并多个图片成为pdf
- 稳定同位素示踪技术在内源性物质代谢调控中的应用
- k8s查看token,discovery-token-ca-cert-hash
- 上海提取公积金所需材料
- TP-LINK TL-WDN6200在Ubuntu 1804下使用
- Trinity(3)
热门文章
- 平板电脑可以插u盘吗_有手机还需要平板电脑吗 酷比魔方iplay30平板电脑评测
- scala元组 数组_Scala中的数组
- Java Duration类| isZero()方法与示例
- java日历类add方法_Java日历computeTime()方法及示例
- 职称计算机提前考试试卷,职称计算机考试多项选择考试卷模拟考^试题
- html二级下拉菜单模板,基于jQuery实现二级下拉菜单效果
- oracle sys连接不上,oracle – 为什么我不能在SYS拥有的对象上创建触发器?
- micropython移植教程_【教程】智能编程T-Watch手表初试micropython之电子秤教程
- echaer 地图_ECharts地图系列
- java sublist_Java Vector subList()方法与示例