-
2022-03-18 10:03:45
问题描述
使用jps查看Java程序(hadoop、hbase、storm)进程时,进程没有正常结束,(如:占用资源过大挂掉、没有结束就进程就直接重启服务器)原有进程会变成
--process information unavailable
这样的空值。有时过一段时间后可以自动消失,手动清理方法:
解决方案:
cd /tmp
进入/tmp目录,ll
查看内容可以发现很多hersperfdata_{用户名}
这样的目录。是因为进程虽然在内存中关闭了,但是Linux还会在/tmp下寻找这些临时文件,而此时临时文件并没有没正常删除。
执行rm -rf hersperfdata_{用户名}
清楚指定的残留进程即可。更多相关内容 -
Linux——Process(进程)相关命令——ps、nice、kill、bg&fg
2021-06-14 11:46:53文章目录Process简单认识几个关于Linux Process的重要角色细心地,有个问题:psnicekillbg&fg Process简单认识 进程就是被执行的程序。 每个进程都是一个运行的实体, 都有自己的地址空间,并占用一定的系统...文章目录
Process简单认识
- 进程就是被执行的程序。
- 每个进程都是一个运行的实体,
都有自己的地址空间,并占用一定的系统资源。
口说话地说:
就好比, 写了一份活动策划书(程序代码),
然后 ,让相关人员(比如操作系统) 按照策划书,有条不紊地举行活动(进程)
换专业一点点的说:
程序,是人类用编程语言编写的,可实现一定功能,并且可执行的代码集合。
而进程是正在执行中的程序。
当程序被执行时,执行人的权限和属性,以及程序的代码都会被加载入内存,
同时, 操作系统给这个进程分配一个 ID,称为 PID(processID)。
于是,
A process is created
every time you run an external command
and is removed after the command finishes its execution
看到的懂吗🤡🤡
就是说,执行一个Linux命令,就一个Linux Process被创建,
当命令执行完,这个process也就被终结 / 移除(removed)了
几个关于Linux Process的重要角色
角色 任务 Processor Scheduler(处理器调度器?) The operating system code that implements the CPU scheduling algorithm——用来实现CPU调度的操作系统代码 Dispatcher (调度器?) The OS code that takes the CPU away from the current process and hands it over to the newly scheduled process——用来将当前进程占用的CPU 调离到(分发到) ,被调度的进程的操作系统代码 Process’s Priority(进程优先级) 进程的优先级值是通过Nice值和CPU使用率计算的 Nice value (Nice值) Nice value is a integer between -20 and 19(Nice值越小,优先级越高-20最高) 进程的nice值不是进程的优先级,
但是进程nice值会影响到进程的优先级变化。
细心地,有个问题:
Dispatcher 和 Scheduler 的中文都译作调度器。
那二者的区别何在?知乎上的回答:
我从这两个词对应的名词上来解释
schedule:scheduler
dispatch:dispatcher
scheduler强调:调度。
dispatcher强调:分发。
两者的不同点在于,调度会按照事先设计好的逻辑(定时策略,延时策略)去执行。
而分发在于,按照一定的策略,将任务派发给具体的执行器(如cpu)去执行。
we may consider a dispatching system as a scheduling system with a zero planning horizon. (引自某一篇调度综述文章)
Shell命令的执行
大致有两种命令:
Shell内置命令internal (built-in) command 扩展命令 external command 命令代码是shell进程的一部分 代码在文件中;文件的内容可以是二进制代码或shell脚本 bg, cd,continue, echo, exec grep,more ,cat, mkdir, rmdir, ls 使用
type + [命令]
可以查看命令类型:
For executing an external binary command
执行一个扩展的二进制命令
- UNIX进程可以使用fork系统调用来创建另一个进程
比如在bash下执行grep命令。bash就forking了一个子进程。 - 将子进程变成命令,然后被执行
于是就用到exec
系统调用 。
用可执行代码 来 覆盖一个(子)进程,使之成为一条可执行命令。
看图说话:- 执行外部命令,创建子进程,父进程等待。
- 此时,内核把程序loads到main memory,覆盖(exec)这个子进程。
- 执行完毕后,父进程被唤醒。
更具体一点,Take an external command
sort
for example
And Take the execution of
a shell script file
for example
小结:
shell串联使用fork和exec系统调用来执行外部二进制命令。
下面介绍与进程相关的几个命令
ps
先看一条命令:查看当前登录,产生了哪些进程 ~$ ps - l
字段解释:字段 含义 UID 执行者的身份 PID 进程ID PPID 父进程的代号 PRI 可被执行的优先级,其值越小越早被执行 NI nice值 TTY 该进程是在哪个终端运行的。pts/0 ~ 255 代表虚拟终端,一般是远程连接的终端,第一个远程连接占用 pts/0,第二个远程连接占用 pts/1,依次増长。 TIME 占用 CPU 的运算时间,注意不是系统时间 CMD 产生此进程的命令名。
常用参数
参数名 意义 a 显示一个终端的所有进程,除会话引线外; u 显示进程的归属用户及内存的使用情况; x 显示没有控制终端的进程; -l 长格式显示更加详细的信息; -e 显示所有进程; “ps -l” 只能看到当前 Shell 产生的进程;
举例
nice
每个进程都有一个介于 [-20,19] 之间的 nice 值。
默认,进程nice值为 0。- 可以给要启动的进程赋予 NI 值,
- 不可以修改已运行进程的 NI 值。
命令格式
[root@localhost ~] $ nice [-n NI值] 命令
举例
kill
《杀死进程》
- 从本质上讲,kill命令向进程发送一个信号。
至于这个信号是什么,是用户指定的。 - 然后系统内核收到的信号类型,对指定进程进行相应的操作。
格式
root@localhost ~$ kill [信号] PID
信号 信号名 意义 0 EXIT 程序退出时收到该信息。 1 HUP 挂掉电话线、终端连接的挂起信号, 2 INT 结束进程,非强制。 “Ctrl+C” ,就是一个 kill -2 的信号。 3 QUIT 退出 9 KILL Sure kill 必然杀死进程 11 SEGV 段错误。 15 TERM 默认信号。正常结束进程
bg&fg
几点说明:
- bg&fg:backgrond and foreground Process
- 在后台运行进程:在命令行后面附加一个&符号
- CTRL + Z:暂停前台进程
- Display all jobs status:jobs
- Background -> Foreground :fg [%jobnum] 让后台进程到前台运行
- suspended -> Background :bg [%jobnum] 让暂停进程到后台运行
如图:
UNIX Daemons
Daemons(守护进程)是在后台运行的系统进程
责任:
1.向用户提供各种类型的服务
2. 处理系统管理任务 -
Linux中设置环境变量process.env.NODE_ENV
2021-10-18 10:55:22node中常用的到的环境变量是NODE_ENV,首先查看是否存在 echo $NODE_ENV 如果不存在则添加环境变量 export NODE_ENV=production ...删除环境变量 unset NODE_ENV 显示所有的环境变量 env配置临时变量
以下配置是临时变量,关闭命令行窗口后之前设置的环境变量都会失效
node中常用的到的环境变量是NODE_ENV,首先查看是否存在
echo $NODE_ENV
如果不存在则添加环境变量
export NODE_ENV=production
删除环境变量
unset NODE_ENV
显示所有的环境变量
env
配置永久变量
-
Linux系统下jps报process information unavailable的解决办法
2020-08-15 00:42:42本人今天配置hadoop,在查看hadoop服务状态的时候,jps报了process information unavailable的信息,在这里提出解决方案。 详情截图: 分析缘由: 使用jps命令查看java进程,经常出现类似"1850 – process ...本人今天配置hadoop,在查看hadoop服务状态的时候,jps报了process information unavailable的信息,在这里提出解决方案。
详情截图:
分析缘由:
使用jps命令查看java进程,经常出现类似"1850 – process information unavailable",可能有两点原因:
1.1850这个PID存在,原因为当前ID为其他用户启动,该用户没有查看权限。
2.1850这个PID不存在。解决方案:
1.首先使用ps -ef 命令查看该进程是否存在[root@vmmaster sbin]# ps -ef|grep 1850 root 5600 1748 0 11:55 pts/0 00:00:00 grep --color=auto 1850
2如果不存在,首先去/目录下的tmp目录下去查找hsperfdata开头的目录,再分别到/tmp/hsperfdata_用户名 目录下查看
(注意:/tmp/hsperfdata_用户名 我这里是zc用户)
[root@vmmaster /]# cd /tmp/hsperfdata_zc/ [root@vmmaster hsperfdata_zc]# ls 1850
3.删除残留进程,根据PID找出对应的文件并且删除即可。
[root@vmmaster hsperfdata_zc]# rm -rf 1850 [root@vmmaster hsperfdata_zc]# cd /opt/bigdata/hadoop/hadoop260/sbin/ [root@vmmaster sbin]# jps 4912 SecondaryNameNode 5059 ResourceManager 5507 JobHistoryServer 4759 DataNode 5337 NodeManager 4639 NameNode 5663 Jps
问题解决,可以发现1850不存在了!
-
linux删除用户出现user xxx is currently used by process xxx的解决方案
2021-03-04 19:59:43linux删除用户出现user xxx is currently used by process xxx的解决方案 当我们想要删除或更改某个用户名时发现user xxx is currently used by process xxx这个报错,错误的原因可能是因为创建user1再登录到user1后... -
Linux[报错Error]:userdel: user xxx is currently used by process 66035 删除用户时报错【已解决】
2021-11-10 13:50:51使用Linux的朋友一定都会遇到这种错误,非常简单也非常常见 造成该错误的原因主要是:在对用户进行删除操作之前,创建并切换了要删除的用户账号,导致该账号还有进程在占用,无法删除。 userdel: user xxx is ... -
Linux中进程xxx -process information unavailable强杀kill不掉【已解决】
2021-11-22 19:19:06造成该进程的主要原因是在不同用户下启动的进程未删除 (process information unavailable)进程信息不可用 -
linux删除用户失败:userdel:user xxx is currently used by process xxxx
2020-04-05 15:53:54在linux系统中,使用su root命令从其它用户切换到root用户后,使用userdel命令删除用户时,显示userdel:user xxx is currently used by process 2651 原因: 切换用户后并没有退出登录,某些进程还占用着刚才登陆的... -
Linux中使用userdel命令删除用户时出现错误 “userdel: user XXX is currently used by process XXX”*
2021-05-22 11:07:43Linux中使用userdel命令删除用户时出现错误 “userdel: user XXX is currently used by process XXX” [root@localhost ~]# userdel wqd userdel: user wqdis currently used by process 10479 删除不成功 **出现... -
linux userdel 命令的使用
2021-01-09 01:17:37其实 userdel 命令实际上是修改了系统的用户账号文件 /etc/passwd、/etc/shadow 以及 /etc/group 文件,这与 Linux 系统“一切操作皆文件”的思想正好吻合。 值得注意的是,如果有该要删除用户相关的进程正在运行,... -
linux process management
2014-10-16 14:55:37CREAT PROCESS fork() | clone(参数,决定父子函数的共享内容) | do_fork() | copy_process() | dup_task_struct() 创建子进程的内核堆栈,复制父进程的进程描述符(task_struct) 进程描述符... -
怎么解决Linux空白进程的问题(-- process information unavailable)
2019-04-25 09:50:45很多时候Linux用久了打开JPS查看进程就会发现有很多不明来历的空白的进程或者名叫【-- process information unavailable】的进程,放着不管也没关系,但是每次打开JPS难免会强迫症发作。。。。。所以今天就分享一下... -
linux输入命令jps出现“process information unavailable解决方法
2020-09-18 20:35:55今天在使用搭建的hadoop集群的时候,出现了2724 – process information unavailable的情况。 下面是出错原因和解决方案:(我是第二种情况,删除掉对应的文件再次jps查看该进程不存在) 2724这个PID存在,但该PID... -
Linux 删除用户 userdel 时提示被进程占用 is currently used by process
2018-04-26 12:01:47原因是你切换过多次用户,要么退出重进(或者 ctrl + D 来退出当前用户,直到最后一个) -
linux环境下 shell指令出现 kill process
2021-08-07 17:34:43一般情况下是自己运存被占用过多,使用的程序调用的需求超出了。 查看内存使用 free -h ...删除SZ列下,数字最大的进程 ...一般视情况删除部分进程,然后就可以继续调用你刚刚报错的指令。 ... -
Linux 用户删除不掉一直显示is currently used by process 原因是切换用户好多次,可以退出从进
2020-03-28 21:27:47如何改变文本的样式 强调文本 强调文本 加粗文本 加粗文本 标记文本 删除文本 引用文本 H2O is是液体。 210 运算结果是 1024. 插入链接与图片 链接: link. 图片: 带尺寸的图片: 居中的图片: 居中并且带尺寸的图片: ... -
Linux - process IDs, parent process IDs, process group IDs and session IDs 之间的关系
2020-10-12 16:14:15实验环境 Kernel Version: 4.15.0-109-generic Operating System: Ubuntu 18.04.5 LTS ...Before looking at the Linux implementation, first a general Unix description of threads, processes -
Linux 无法使用userdel 删除用户和组的解决方案
2021-01-20 16:28:12Linux 无法使用userdel 删除用户和组的解决方案 简述: 今天在看书的时候,看到有个实例,手痒痒的跟着做了起来。。。但是,出现问题了。。测试的用户和组不能删除。。 情况: 一般我们移除,都是先把用户从组中... -
linux服务器jps报process information unavailable
2022-04-27 10:07:24linux服务器jps报process information unavailable ** 在Linux下执行 jps 是快速查看Java程序进程的命令,一般情况下hadoop,hbase,storm等进程都是通过jps查看,有些时候因为进程没有被正常结束,比如资源占用过... -
Linux系统进程监控利器:Prometheus+Grafana+process-exporter(监控系统进程指标)
2021-04-09 13:52:391.process-exporter下载 wget https://github.com/ncabatoff/process-exporter/releases/download/v0.7.5/process-exporter-0.7.5.linux-amd64.tar.gz ...tar -xf process-exporter-0.7.5.linux-amd64 -
linux删除用户出现错误:userdel: user xxx is currently used by process 25617
2018-11-02 20:40:28一开始直接用:userdel -r xxx 出现错误:userdel: user xxx is currently used by ...找到需要删除的用户那行,按dd删掉,:wq强制保存退出 [root@ home]#vipw -s 找到用户所属组,也dd删掉,保存:wq或者:wq! ... -
(记录)userdel: user XXX is currently used by process xxxxx,linux/ubuntu删除用户失败问题解决。
2021-10-24 13:12:46sudo killall -TERM -u xxxxx, xxxxx对应报错信息里面的进程号, sudo userdel -r XXX XXX表示你要删除的用户名。 -
Process Hacker一款功能强大的系统调试器
2021-05-13 06:29:21导读今天给大家介绍的是一款免费且...Process Hacker项目地址官方网站:https://processhacker.sourceforge.io/GitHub:https://github.com/processhacker/processhacker系统要求:Windows7及以上版本,支持32位或6... -
Java中执行Linux文件删除命令 rm -rf
2021-12-17 09:28:52Process p; InputStreamReader inputStreamReader = null; BufferedReader br = null; String co = "rm -rf " + destDirPath; try { p = Runtime.getRuntime().exec(co); inputStreamReader = new ... -
linux删除目录命令_如何使用一个Linux命令删除多个子目录
2020-09-09 15:57:37linux删除目录命令If you want to remove several subdirectories within another directory using the command line in Linux, generally you have to use the rm command several times. However, there is a ... -
linux彻底删除nginx
2021-05-14 13:36:31卸载 删除 nginx1.删除nginx,–purge包括配置文件sudo apt-get --purge remove nginx12.自动移除全部不使用的软件包sudo apt-get autoremove13.罗列出与nginx相关的软件dpkg --get-selections|grep nginx1执行结果:... -
Linux 删除用户时 ‘userdel: user hm is currently used by process 241935
2022-06-15 11:03:09Linux 删除用户时 ‘userdel: user hm is currently used by process 241935’我们在linux上管理用户时经常遇到删除用户的情况, 我们通常使用userdel删除用户 但是会遇到用户被占用的情况 只需要把占用的进程号kill... -
Linux服务器jps报process information unavailable
2020-01-26 03:04:58在Linux下执行 jps 是快速查看Java程序进程的命令,一般情况下hadoop,hbase,storm等进程都是通过jps查看,有些时候因为进程没有被正常结束,比如资源占用过大时挂掉或者没有结束进程就直接重启计算机,会导致原有...