Saya mencoba menulis fungsi dalam .bash_profile untuk mendefinisikan fungsi untuk proses pembunuhan sebagai berikut:
function pkill {
pid = ps -elf|grep python|grep $1|awk -F " " '{print $4}'
kill -9 pid
}
Dan yang ingin saya lakukan adalah menggunakan "kata kunci pkill" untuk mematikan proses yang pid = [ps -elf | grep python | grep kata kunci | awk -F "" '{print $ 4}'], dan kode saya tidak berfungsi . Bagaimana saya harus menulis fungsi ini?
tentang membunuh:
proses python saya multithreaded. Saya sudah mencoba kill pid
, kill -TERM pid
,atau kill -INT pid
, tetapi masih dapat menemukannya di daftar proses. Jadi saya menggunakan 'kill -9'.
pkill
( linux.die.net/man/1/pkill ) tersedia di sistem Anda?kill -9
: aplawrence.com/SCOFAQ/FAQ_scotec6killminus9.html dan sial.org/howto/shell/kill-9 dan speculation.org/garrick/kill-9.htmlJawaban:
Tapi Anda mungkin bisa menggunakannya pgrep sebagai gantinya:
atau
Jika Anda merasa percaya diri (gegabah!):
sumber
pkill -f "python .*$1"
, sebagaipkill
selalu disertaipgrep
.Apakah ada alasan Anda mendaftar dan kemudian membuang satu ton sampah tambahan?
(Saya menganggap Anda menggunakan GNU ps, tetapi saya lebih suka sintaks BSD ps. Ini juga didukung oleh GNU ps, karena GNU ps mendukung semuanya.)
Kerusakan:
sumber
Bukankah seharusnya lebih seperti
sumber
$( )
tidak${ }
.