Linux学习笔记03---ps命令和linux 运行/关闭jar 包

1.ps命令

Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。

命令参数:
a  显示所有进程
-a 显示同一终端下的所有程序
-A 显示所有进程
c  显示进程的真实名称
-N 反向选择
-e 等于“-A”
e  显示环境变量
f  显示程序间的关系
-H 显示树状结构
r  显示当前终端的进程
T  显示当前终端的所有程序
u  指定用户的所有进程
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程 
-C<命令> 列出指定命令的状况
--lines<行数> 每页显示的行数
--width<字符数> 每页显示的字符数
--help 显示帮助信息
--version 显示版本显示

1.1 显示所有进程信息,连同命令行

命令:ps -ef

注意:-ef 命令参数会连同命令行打印出来

输出:

UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 May23 ?        00:00:08 /lib/systemd/systemd --system --deserialize 21
root          2      0  0 May23 ?        00:00:00 [kthreadd]
root          4      2  0 May23 ?        00:00:00 [kworker/0:0H]

参数说明:

  • UID 代表执行者身份
  • PID 进程的ID号!
  • PPID 父进程的ID;
  • C CPU使用的资源百分比

1.2 ps 与grep 常用组合用法,查找特定进程

命令:ps -ef|grep java

[test@localhost] $  ps -ef|grep java
test        18835  29986  0 06:05 pts/5    00:00:00 grep --color=auto java
test       25652  23863  0 03:49 pts/4    00:00:25 java -jar flep-sdk-cloud-test1-1.0-SNAPSHOT.jar

2.Linux 运行/关闭jar 包

2.1 linux 运行jar包

(1) 在Linux中运行jar包: 直接用java -jar xxx.jar,当退出或关闭shell时,程序就会停止掉。

以下方法可让jar运行后一直在后台运行: 在命令的结尾添加 “&” ,& 放在命令的结尾,表示后台运行,防止终端一直被某个进程占用,这样终端可以执行别的任务; 但是在当窗口关闭时,程序也会中止运行;

java -jar XXX.jar &

(2) nohup 不挂断运行的命令,当终端或者账户关闭的时候,程序依旧运行。

nohup放在命令的开头,表示不挂起(no hang up),也即,关闭终端或者退出某个账号,进程也继续保持运行状态,nohup一般配合&符号一起使用。如nohup command &。

当前的命令默认会把日志输出到nohup.out文件中

nohup java -jar XXX.jar & 

指定输出日志文件

nohup java -jar XXX.jar >log.out &

例如:jar包名称叫zentao.jar

命令如下:nohup java -jar zentao.jar >zentao.log &

注意:nohup 一般配合&符号一起使用;

(3) 标准写法(极力推荐)

>:将流输出到文件;同:1 >,默认情况下就是1,即标准输出,一般都省略

/dev/null:这个文件是一个无底洞,无法打开,相当于是一个垃圾站。也就是将所有产生的日志都丢弃。

  • 0 表示stdin标准输入
  • 1 表示stdout标准输出
  • 2 表示stderr标准错误
nohup java -jar XXX.jar >log.out 2>&1 &

2>&1:代表将标准错误2重定向到标准输出1 ;

>file 2>&1" 的作用是: 将命令行程序的错误输出和标准输出都输出到文件file中;

<1> 如果不想写日志,可以将日志重定向到 /dev/null 中,/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失; 标准输出就会不再存在,没有任何地方能够找到输出的内容

nohup java -jar common.jar > /dev/null &

<2> 只输出错误信息到日志文件,标准输出不写入日志文件,直接丢弃

nohup java -jar common-api.jar >/dev/null 2>log.error & 

<3> 标准输出(stdout)重定向到/dev/null中(丢弃标准输出),然后标准错误输出(stderror)由于重用了标准输出的描述符,所以标准错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了(最终推荐写法

nohup java -jar common-api.jar >/dev/null 2>&1 &

<4> 标准输出重定向到log.out中,然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了log.out中

但是不管那种情况,如果日志输出,日志文件都会增加很快,造成单个文件很大

nohup java -jar common-api.jar >log.out 2>&1 & 

2.2 关闭jar程序.

如果想杀掉运行中的jar程序,要先找到对应的pid.查看进程命令为:

ps -ef|grep zentao.jar

将会看到此jar的进程信息

root 3863 1.2 2.7 7815468 450984 ? Sl 11:44 0:16 java -jar zentao.jar
root 4614 0.0 0.0 112724 984 pts/0 R+ 12:06 0:00 grep --color=auto zentao.jar

其中3863则为此jar的pid,杀掉命令为

kill -9 3863

参考文献:https://blog.csdn.net/a913858/article/details/86552365

https://www.cnblogs.com/xiangtingshen/p/10920236.html(ps操作命令)

https://blog.csdn.net/qq_35549286/article/details/108799242 (java -jar)

https://blog.csdn.net/Yohann17/article/details/123357797

posted @ 2021-11-18 09:30  雨后观山色  阅读(1080)  评论(0编辑  收藏  举报