Gunakan pkill -U UID
atau pkill -u UID
atau nama pengguna, bukan UID. Terkadang skill -u USERNAME
mungkin berfungsi, alat lain adalah killall -u USERNAME
.
Skill adalah khusus linux dan sekarang sudah usang, dan pkill lebih portabel (Linux, Solaris, BSD).
pkill mengizinkan UID numerik dan simbolik, efektif dan nyata http://man7.org/linux/man-pages/man1/pkill.1.html
pkill - ... proses sinyal berdasarkan nama dan atribut lainnya
-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.
Halaman manual keterampilan mengatakan apakah diperbolehkan hanya menggunakan nama pengguna, bukan id pengguna:http://man7.org/linux/man-pages/man1/skill.1.html
skill, snice ... Alat-alat ini sudah usang dan tidak dapat dibawa-bawa. Sintaks perintah tidak didefinisikan dengan baik. Pertimbangkan untuk menggunakan killall, pkill
-u, --user user The next expression is a username.
killall tidak ditandai sebagai kedaluwarsa di Linux, tetapi juga tidak akan berfungsi dengan nomor UID; hanya nama pengguna:http://man7.org/linux/man-pages/man1/killall.1.html
killall - bunuh proses dengan nama
-u, --user Kill only processes the specified user owns. Command names are optional.
Saya pikir, utilitas apa pun yang digunakan untuk menemukan proses dalam gaya Linux/Solaris /proc (procfs) akan menggunakan daftar lengkap proses (melakukan beberapa readdir dari /proc
). Saya pikir, mereka akan mengulangi /proc
subfolder digital dan periksa kecocokan setiap proses yang ditemukan.
Untuk mendapatkan daftar pengguna, gunakan getpwent
(itu akan mendapatkan satu pengguna per panggilan).
skill (procps &procps-ng) dan killall (psmisc) tools keduanya menggunakan getpwnam
panggilan perpustakaan untuk mengurai argumen -u
opsi, dan hanya nama pengguna yang akan diuraikan. pkill
(procps &procps-ng) menggunakan atol dan getpwnam untuk mengurai -u
/-U
argumen dan izinkan penentu pengguna numerik dan tekstual.
Jika Anda meneruskan -1 sebagai argumen ID proses ke kill
perintah shell atau kill
C, kemudian sinyal dikirim ke semua proses yang dapat dijangkau, yang dalam praktiknya berarti semua proses pengguna menjalankan kill
perintah atau syscall.
su -c 'kill -TERM -1' bob
Di C (pemeriksaan kesalahan dihilangkan):
if (fork() == 0) {
setuid(uid);
signal(SIGTERM, SIG_DFL);
kill(-1, SIGTERM);
}
Jika fungsi pkill tidak tersedia pada distribusi UNIX / Linux Anda, Anda dapat menjalankan perintah berikut sebagai pengguna root:
ps -ef | grep username | grep -v grep | awk '{print $2}' | xargs kill
di mana nama pengguna adalah pengguna yang ingin Anda hapus