我很难理解使用pgrep与使用ps | grep之间的区别。
除了pgrep只列出PID之外,还有什么不同呢?
当我在我的终端后台运行一个kwrite实例,并使用GUI打开一个实例时,为什么ps | grep kwrite给出的输出只有一个PID,而两个kwrite实例正在运行呢?
稍微不同的是,为什么使用pkill来杀死崩溃的kwrite实例并不是一种杀死进程的好方法?我能想出的唯一解释是,它会杀死所有包含字符串" kwrite“的进程,而这可能不仅仅是我想要杀死的kwrite实例。
谢谢你的帮助。
发布于 2014-12-23 00:55:34
ps | grep将分叉2个进程,pgrep只分一个。ps | grep whatever也可能会列出grep whatever,这取决于ps何时退出,pgrep whatever不会。ps将需要附加命令行开关来显示两个kwrite进程。(见: man ps,下次尝试ps -ef )默认情况下,ps作为当前用户选择具有相同有效用户ID (euid=EUID)的所有进程,并与调用方相关联。
尝试运行一个手工编写实例,最好使用重要的和未保存的数据来查找,为什么使用pkill杀死崩溃的实例可能不是最聪明的主意。
https://stackoverflow.com/questions/27612396
复制相似问题