web-dev-qa-db-ja.com

grepを使用せずに名前でプロセスを検索するにはどうすればよいですか?

プロセスを検索するには、psgrepを使用できます。

たとえば、firefoxを検索するには

ps aux | grep firefox

grepを使用せずに同じ答えを得る方法は?

59
Maythux

pgrep コマンドとその兄弟pkillは、まさにこの目的のために存在します。

  • pgrep firefoxは、コマンドがfirefoxに一致するすべてのプロセスをリストします
  • pgrep -f firefoxは、コマンドライン全体がfirefoxに一致するすべてのプロセスをリストします
  • pgrep -x firefoxは、firefoxと完全に一致するコマンドを持つすべてのプロセスをリストします
  • ... 等々。

そして当然、pgrepはそれ自体を一致から除外するため、ps | grepに関連付けられたgrepの儀式は必要ありません。


このためのツールの他のセットは、pidofおよびkillallコマンドです。これらはpgrepおよびpkillほど柔軟ではありません。

  • pidof firefoxは、コマンドがfirefoxであるプロセスをリストします
69
muru
ps -fC process-name

例:

ps -fC firefox

man psから

  -C cmdlist      Select by command name.
                       This selects the processes whose executable name is
                       given in cmdlist.


 -f              Do full-format listing. This option can be combined
                       with many other UNIX-style options to add additional
                       columns. It also causes the command arguments to be
                       printed. When used with -L, the NLWP (number of
                       threads) and LWP (thread ID) columns will be added. See
                       the c option, the format keyword args, and the format
                       keyword comm.
23
Maythux

クールなトリック

$ps -ejH

すべてのプロセスに名前が付けられます

exmple:
1747   568   568 ?        00:00:00   colord
1833  1832  1832 ?        00:00:00   gnome-keyring-d
2263   568   568 ?        00:00:00   udisksd
2311  2311  2311 ?        00:00:00   cupsd
2315  2315  2311 ?        00:00:00     dbus

出力をファイルにリダイレクトするか、コピーしてからnanoを開き、を押します Ctrl+W 必要な名前を検索できます。

2
daniel

topは、大文字のLを押したときに文字列を検索できます。プロセスが強調表示され、上下の矢印キーを使用してプロセスのリストをスクロールします。同様に、htopコマンドを使用すると、/を押したときに特定のプロセスを強調表示できます。また、\は、名前に特定の文字列を持つすべてのプロセスをフィルターします。

Awkが好きな人のために、awk onelinerがあります:ps -eF | awk '/process-name/ {print $11}'ps -eFの場合、プロセス名は常に11列目にあります。あるいは、ps -eF | awk '{print $11}' | sortを実行すると、アルファベット順にソートされたプロセス名のソートされたリストを取得します。それをlessコマンドにパイプして、ファイルの長いリストを簡単に表示します。

2

htopを使用してからF4を押して、一致するユーザー定義文字列で結果をフィルター処理することもできます。 F3を押すと、カスタム検索機能も利用できます。

1
JoErNanO

2つのプロセスに問題がある場合は、only grepを使用できます。

grep firefox /proc/*/cmdline
1
user1497298

私はこのpsエイリアスをLennart Poetteringブログで読みました。出力は、systemdコントロールグループのペアレント化に基づいています。

alias psc='ps xawf -eo pid,user,cgroup,args'
0
DDPenga