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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)