Articles of pid

使用SIGKILL杀死父进程和subprocess

我正在写一个shell脚本,在其中我有父进程,它有由sleep &命令创build的subprocess。 现在我想杀死父进程,这样subprocess也会被杀死。 我可以用下面的命令来做到这一点: trap "kill $$" SIGINT trap 'kill -HUP 0' EXIT trap 'kill $(jobs -p)' EXIT 这些命令正在使用kill [parent_process_ID]命令,但是如果我使用kill -9 [parent_process_ID]那么只有父进程将被终止。 请进一步指导我实现此function,以便当我用任何命令杀死父进程时,subprocess也应该被终止。

我如何确定在Linux上是否使用Java或JRuby运行不同的进程ID?

我需要看看给定的进程ID是否正在运行,它必须在Java或JRuby(最好是Ruby解决scheme)中工作。 Linux可以依赖于系统(特别是Debian和/或Ubuntu)。 我已经有我正在寻找的PID,只需要看看它是否正在运行。 更新: 感谢所有人的回应! 我很欣赏它,但它不是什么我正在寻找…我希望在标准的Ruby库(或Java,但最好是Ruby)的东西…如果没有这样的库调用存在,我可能会坚持我已经有了procfs解决scheme。

如何在Linux中每5秒钟查找一个特定进程的内存消耗量

我只想知道如何在特定时间内find特定进程的内存消耗(比如5秒) 我是新来的Linux。 所以,这样做的详细步骤将不胜感激

PID,PPID和TGID的含义

什么是Linux内核首字母缩略词PID,PPID,TGID代表什么? 我在strace-pids上偶然发现了他们。

识别在Linux上打开特定进程的文件

我需要一个脚本来识别在linux上打开特定进程的文件 识别fd: >cd /proc/<PID>/fd; ls |wc –l 我期望看到一个数字列表,这是在这个过程中使用的文件描述符的编号列表。 请告诉我如何查看在这个过程中使用的所有文件。 谢谢。

Bash等待命令,等待超过1个PID完成执行

我最近发表了一个问题,问是否有可能阻止PID被重新使用 。 到目前为止答案似乎是否定的。 (这很好。) 然而,用户迭戈·托雷斯·米兰(Diego Torres Milano)给这个问题添了一个答案,我的问题就是这个问题。 迭戈回答说, 如果你害怕重复使用PID,如果你等待其他答案的解释就不会发生,你可以使用 echo 4194303 > /proc/sys/kernel/pid_max 减less你的恐惧;-) 我不明白为什么迭戈在这里使用了4194303号码,但这是另一个问题。 我的理解是,我遇到了以下代码的问题: for pid in "${PIDS[@]}" do wait $pid done 问题是,我有一个数组中的多个PID,并且for循环将依次运行数组中的每个PID的wait命令,但是我无法预测这些进程将按照它们的PID存储在这个arrays。 即; 可能会发生以下情况: 开始等待数组索引0中的PID 数组索引1中的PID进程终止 新作业在系统上运行,导致存储在PID数组索引1中的PID被重新用于另一个进程 wait终止,因为数组索引0中的PID退出 开始在数组索引0中等待PID, 除了这是一个不同的过程,我们不知道它是什么 重新使用目前正在等待的PID的运行过程永远不会终止。 也许这是邮件服务器的PID或系统pipe理员已经启动的东西。 等待,直到发现下一个严重的Linux错误,系统重新启动或停电 迭戈说: 这不会发生,如果你等待其他答案的解释 即; 我上面所描述的情况是不可能发生的。 迭戈是否正确? 如果是这样,为什么我上面描述的情况不会发生? 或者迭戈不正确? 如果是的话,那么今天晚些时候我会发布一个新的问题。 补充笔记 对我来说,这个问题可能会令人困惑,除非你知道PID是在后台启动的进程的PID。 即; my_function & PID="$!" PIDS+=($PID)

存储守护进程的pid文件以用户身份运行

有没有一个首选的地方来存储作为用户运行的守护进程的PID文件? / var / run是标准的地方,但是这是一个用户守护进程,所以它没有写权限。 据推测我的守护进程将从.profile或.bashrc或其他东西开始。 只是把它保存到/ tmp一个坏主意?

杀死一个Java进程(在Linux中)的进程名称,而不是PID

在configuration/安装Hadoop集群时,我们通常需要杀死一个Java进程/守护进程。 我们看到用jps命令运行的Java进程/守护进程。 通常我们用PID来杀死一个Java进程。 例如 kill -9 112224 inputPID是有点困难的。 有没有办法通过名称来杀死进程? 在一个单一的命令?

如何将networking连接绑定到PID而不使用lsof或netstat?

有没有办法将networking连接绑定到一个PID(进程ID),而不分叉到LSF或NETSTAT? 目前正在使用lsof来查询哪个连接属于哪个进程ID。 但是,在繁忙的主机上,lsof或netstat可能会相当昂贵,并且希望避免必须分叉这些工具。 有没有类似于/ proc / $ pid的地方可以find这些信息? 我通过检查/ proc / net知道networking连接是什么,但是无法弄清楚如何将它连接到一个pid。 在/ proc / $ pid中,似乎没有任何networking信息。 目标主机是Linux 2.4和Solaris 8到10.如果可能的话,在Perl中有一个解决scheme,但愿意做C / C ++。 补充笔记: 我想强调这里的目标是将一个networking连接绑定到一个PID。 find一个或那个是微不足道的,但以低成本的方式将两者结合在一起似乎是困难的。 感谢迄今为止的答案!

如何通过在C中的PID来监视事件的外部进程?

有什么图书馆有一些function允许一个监视外部进程的事件通过其pid_t ? 我的意思是,监视一个外部进程是否已经退出,或者是否已经创build了一个或多个subprocess(带有fork ),还是已经成为另一个可执行映像(通过exec或posix_spawn函数系列调用),还是一个Unix信号是交付给它。 编辑 我需要一些不会干扰被监控程序执行的东西。 所以,我不应该使用ptrace ,因为它会在发出某种信号时停止正在监视的进程,并且每当发生这种情况时都需要恢复进程。