网站运营
位置:首页>> 网站运营>> Linux nohup实现后台运行程序及查看(nohup与&)

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

作者:猿的生活  发布时间:2023-06-29 20:35:13 

标签:Linux,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 &

来源:https://blog.csdn.net/maihilton/article/details/82781897

0
投稿

猜你喜欢

  • 在川外成都学院就读的肖曦怎么也没想到,帮朋友在淘宝上买游戏充值卡的他竟然遭遇“钓鱼”网站,瞬间被骗走
  • 火如荼的IT行业,除了许多地方让人无奈之外,倒也培养出了许多互联网时代特有的人才。今便借《不可错过的IT女孩TOP10》一文,来调侃下各种I
  • - .htaccess文件(或者"分布式配置文件"提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含
  • 很多新手的站长感觉建站难了、维护难了、推广更难了,一是由于国内禁止个人注册CN域名导致建站成本迅速上升,二是国家对网络管理异常严格,所有与色
  • 一。域名管理面板1。在Godaddy账户中点击Domain manage进入域名管理2。域名管理界面如下面两个图片所示,左侧是管理选项,右侧
  • 前言在和朋友打扑克的时候听到电视里飞出一句这样的话:“百度一下就行了” 抬头一看,原来是春晚里姜昆的
  • 搜索引擎付费关键词广告:能够最大限度的聚集搜索相关性的客户群体,并最大化的转换成目标客户。为企业主获得最高收入和快速的投资回报率。如何使用付
  • 每个人都梦想自己的网站进入主要搜索引擎的十大排名,但真正做到的却很少!就如我的非主流网站http://www.fzl63.com也在为这一目
  • 搜狐近日公布了2009年度财务报告,总收入达5.152亿美元,年增长率达20%,其中子公司畅游所运营的游戏业务收入为2.676亿美元,超过母
  • Windows10支持Linux子系统了,告别繁琐的双系统、虚拟机安装,原生安装方便快捷。windows subsystem for lin
  • 几个月前我问网友:对于网赚联盟营销,他们最希望了解什么。经过筛选,我挑出了15个问题。然后找到了三个朋友,让他们来回答这15个关于网赚联盟
  • 如果你想知道你的网站上哪个页面最受来访者的欢迎,在一段时间内有多少人访问你的站点,你当然可以设置一个计数器,但每页都设计数器,太繁琐而且得到
  • 所有搞网络营销的人都知道论坛营销基本是以量取胜,为什么说是以量取胜呢,因为你在一个论坛上只发一个帖子,基本上没什么效果,所以现在出现了很多如
  • 域名的概念与机制1. 介绍本文主要介绍域名(DNS)的一些机制及实现方法,下面我们就具体看一下它的情况。1.1. 域名的历史产生域名的的根本
  • 先来一张登陆界面吧从上次zblog更新至今也有2年多了,一直未见zblog有过更新,虽然去年愚人节的时候发布了一个版本,但那个版本真的只是一
  • 许久没发这类日志了今天在戒聊的帮助指导下终于将Gravatar整合进了PJBlog3的评论中~话不多说,修改教程奉上!(不知道什么是Grav
  • 喜欢看电影吗?有收藏电影的习惯吗?网上看电影,资源太多,纵使再大的硬盘都会很快装满,你是否在为无法保存自己喜爱的影片而发愁呢?我想大部分着迷
  • 开发中需要用到多个虚拟机进行实验。重新安装过程又太繁琐,通过vmware虚拟机自带软件能够很好的快速克隆出完全相同的系统。下面会为大家讲解关
  • 每个搜索引擎都有各自收录、排名的原则、规则或者方法。所谓的SEO专业知识,其实实质上是指怎么样去设计一个更优秀的网站,去设计一个更高效率的网
  • 前言看过上一篇接手老项目的痛——MongoDB学习及集群搭建知道,最近接手了一个后妈养的项目,项目的数据库没有人维护,DBA以各种理由推脱暂
手机版 网站运营 asp之家 www.aspxhome.com