以下の内容はhttps://devlights.hatenablog.com/entry/2026/03/11/073000より取得しました。


pkill, pgrepでプロセスが見つからない場合 (15文字まで, -fオプション, /proc/pid/stat, TASK_COMM_LEN)

関連記事

GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ

概要

以下、自分用のメモです。たまに忘れてて、このエラーにハマるときがあるのでついでなのでここにメモメモ。。。

pkillpgrepコマンドってプロセスを落とすときによく利用しますよね。

んで、たまにちゃんと指定しているのにプロセスが見つからないってエラーが出たりするときがあります。該当プロセスは確実に存在しているのにです。

そういうときは、プロセス名の文字数をチェックしましょう。

-fオプションを付与していない場合は15文字までしかマッチ対象になりません。

サンプルで作っているアプリとかだと app1とかtmp3みたいな名前で動かしたりすることが多いので、ほぼこの現象にはヒットしません。

実務とかだと、なぜかとても長いプロセス名を設計する人とかがいたりします。

なので、プロセス名が15文字よりも多い場合は -f オプションを付与して実行しましょう。

  • -fオプションが付与されていない場合は /proc/pid/stat を参照するので TASK_COMM_LEN 定数の値、つまり終端込で16となります
  • -fオプションが付与されている場合は /proc/pid/cmdline を参照してマッチするかどうかを見てくれます

結構、スクリプトとか組んでて複数のプロセスを一括で探してkillするときとかに何故かエラー出るやつが出たりして焦るんですよね。こういうの。

面倒な場合は、常に -f オプションを付与するって覚えておけば大体大丈夫です。

たまに -f オプションを付与していると駄目な場合は -x オプションも使えます。

参考情報

linuxjm.sourceforge.io


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。




以上の内容はhttps://devlights.hatenablog.com/entry/2026/03/11/073000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14