pkill -U UID
を使用 または pkill -u UID
または UID の代わりにユーザー名。時々 skill -u USERNAME
動作する可能性があります。別のツールは killall -u USERNAME
です .
Skill は Linux 固有のもので、現在は古くなっています。pkill はより移植性があります (Linux、Solaris、BSD)。
pkill は、数値と記号の両方の UID を許可し、有効で実際の http://man7.org/linux/man-pages/man1/pkill.1.html
<ブロック引用>pkill - ... 名前やその他の属性に基づいてプロセスにシグナルを送る
-u, --euid euid,...
Only match processes whose effective user ID is listed.
Either the numerical or symbolical value may be used.
-U, --uid uid,...
Only match processes whose real user ID is listed. Either the
numerical or symbolical value may be used.
スキルの man ページには、ユーザー ID ではなくユーザー名の使用のみが許可されていると記載されています:http://man7.org/linux/man-pages/man1/skill.1.html
<ブロック引用>スキル、スナイス... これらのツールは時代遅れで移植性がありません。コマンド構文の定義が不十分です。 killall、pkill の使用を検討してください
-u, --user user
The next expression is a username.
killall は Linux では古いものとしてマークされていませんが、数字の UID では機能しません。ユーザー名のみ:http://man7.org/linux/man-pages/man1/killall.1.html
<ブロック引用>killall - プロセスを名前で強制終了
-u, --user
Kill only processes the specified user owns. Command names
are optional.
Linux/Solaris スタイルの /proc (procfs) でプロセスを見つけるために使用されるユーティリティは、プロセスの完全なリストを使用すると思います (/proc
のいくつかの readdir を実行します)。 )。 /proc
以上繰り返すと思います デジタル サブフォルダーを検索し、見つかったすべてのプロセスが一致するかどうかを確認します。
ユーザーのリストを取得するには、getpwent
を使用します (呼び出しごとに 1 人のユーザーを取得します)。
skill (procps &procps-ng) および killall (psmisc) ツールは両方とも getpwnam
を使用します -u
の引数を解析するためのライブラリ呼び出し オプションであり、ユーザー名のみが解析されます。 pkill
(procps &procps-ng) atol と getpwnam の両方を使用して -u
を解析します /-U
引数であり、数値とテキストの両方のユーザー指定子を許可します。
kill
のいずれかにプロセス ID 引数として -1 を渡すと、 shell コマンドまたは kill
C関数の場合、信号は到達できるすべてのプロセスに送信されます。これは、実際には kill
を実行しているユーザーのすべてのプロセスを意味します コマンドまたはシステムコール。
su -c 'kill -TERM -1' bob
C の場合 (エラー チェックは省略):
if (fork() == 0) {
setuid(uid);
signal(SIGTERM, SIG_DFL);
kill(-1, SIGTERM);
}
UNIX / Linux ディストリビューションで pkill 機能を使用できない場合は、root ユーザーとして次のコマンドを実行できます:
ps -ef | grep username | grep -v grep | awk '{print $2}' | xargs kill
username は、削除したいプロセスのユーザーです