Watch

pkillでユーザーに属するすべてのプロセスを強制終了する

pkillでユーザーに属するすべてのプロセスを強制終了する

ユーザーに属するすべてのプロセスを強制終了する

アクティビティモニターと従来の「kill」コマンドラインツールは、ほとんどのプロセス終了ニーズに対応できますが、特定のユーザーアカウントに属するすべてのプロセスを対象に強制終了する必要がある場合、それが非常に面倒な作業になることはご存じでしょう。アクティビティモニターでは「その他のユーザープロセス」を並べ替えて複数のプロセスを選択できますが、複数のプロセスを同時に終了することはできません。同様に、標準のkillコマンドとkillallコマンドは、通常、特定のプロセスを対象としており、特定のユーザーアカウントに属するすべてのタスクを対象としているわけではありません。そこで「pkill」コマンドの出番です。これを使用すると、ターミナル経由で任意のユーザーに属するすべてのプロセスを簡単に瞬時に強制終了できます。

pkillを使ってユーザーからすべてのプロセスを強制終了する方法

pkill を使用してユーザーのすべてのプロセスを強制終了するための基本的な構文は次のとおりです。

pkill -u username

ps コマンドの -u フラグを使用して、そのユーザーに属するすべてのプロセスが終了していることを確認します。

ps -u username

すべてが意図したとおりに進んだと仮定すると、空白のリストが報告されます。

pkill は大文字と小文字を区別しません。つまり、「TestUser」というユーザー名は「testuser」と同じように識別されます。

これを自分で試してみる場合は、ファストユーザースイッチを使用して別のユーザーアカウントで新規ログインを開始するか、SSHサーバーを使用して別のローカルMacで実行するのが最善です。自分のアクティブユーザー名でpkillを実行すると、すべてのプロセスが終了します。一部のプロセスは即座に更新されますが、多くのバックグラウンドプロセスは自動的に再起動しません。これにより、様々な異常な動作が発生します。実行中のアプリケーションによっては、OSが使用不能になり、ログアウトして再度ログインする必要があるか、pkillの対象となったアクティブユーザーアカウントがルートまたは管理者レベルの場合は再起動が必要になることもあります。

pkill コマンドは、ユーザー名に向けられると少々厄介なものであり、ログインしているユーザーに属するすべてを基本的に強制的に終了する方法と考えることができますが、トラブルシューティングや、ユーザーがログアウトしたにもかかわらずそのまま残っている機能していないプロセスやゾンビ プロセスを処理する際に非常に強力なツールにもなります。

ワイルドカードを使用してプロセスや、単一ユーザーに属する特定のアプリケーション/プロセスを強制終了する pkill コマンドについては以前に説明しました。このコマンドは、Mac OS X Mountain Lion 以降の Mac OS に最近追加されたものですが、Linux の世界ではかなり以前から存在しています。