Terkadang saya perhatikan bahwa prosesnya Python
terhenti. Lalu saya akan membunuhnya melalui Monitor Aktivitas dan semuanya baik-baik saja.
Saya ingin membunuh proses itu di Terminal sebagai gantinya. Namun, mencari PID
sepertinya tidak perlu karena hanya ada satu proses dengan namanya Python
.
Apakah mungkin untuk membunuh proses dengan nama uniknya?
No matching processes belonging to you were found
sudo killall Python
.sudo
ketika saya membunuhnya menggunakan ituPID
. Mengapa?sudo
.Jika Anda tidak bisa menjadi sudo karena akan meminta kata sandi dan saya merasa Anda tidak menginginkannya dalam skrip. pkill datang untuk menyelamatkan :)
sumber
Anda dapat mematikan Aplikasi dengan menggunakan Activity Monitor.app, menjadi solusi GUI. Itu akan menjadi "kekuatan berhenti" yang sederhana. Namun, itu tidak selalu berhasil karena alasan yang berbeda dalam beberapa situasi!
Solusi baris perintah seperti yang disebutkan dalam komentar di atas memiliki lebih banyak opsi bagi pengguna.
sudo killall Python
atau jika itu adalah program-proses yang berjalansudo killall /Applications/Whatever.app
memaksa proses untuk berhenti juga.Anda juga dapat memaksa proses untuk berhenti, menggunakan PID yang ditugaskan . Dalam kasus Activity Monitor.app itu akan
kill 25794
ataukill -9 25794
Beberapa detail lebih lanjut:
Program kill di Terminal hanya memaksa keluar dari sebuah program, seolah-olah dengan remote control. (Ia bahkan berfungsi ketika Anda SSH ke Mac Anda dari lokasi yang jauh. Ikuti perintah kill dengan nomor ID proses (PID pendek) dari program yang ingin Anda hentikan.
Kecuali jika Anda juga menggunakan sudo, Anda dapat membunuh hanya program-program yang Anda "miliki" —yang berjalan di bawah akun Anda. (Sistem operasi itu sendiri - root - selalu menjalankan programnya sendiri, dan secara teknis memungkinkan orang lain, memutar dari jalan, menjalankan program mereka sendiri bahkan saat Anda menggunakan Mac!)
The
-9
bendera adalah “non-catchable, non-ignorable membunuh.” Dengan kata lain, ini merupakan pembunuh industri-kekuatan yang menerima tidak ada permohonan belas kasihan dari program Anda pembunuhan sedang.sumber
Meskipun tidak menggunakan PID, saya menemukan berikut untuk menjadi cukup efisien:
ps aux | grep "String or name of process"
Baris ini mengembalikan sejumlah informasi tentang proses pencocokan, dan Anda bisa
kill
atau apa pun dari sana.sumber
Berdasarkan https://stackoverflow.com/a/22334807/1243763
sumber
pidof
biner sebagai alias non-standarps -e -o pid,args | grep -E "\b$1\b" | awk "{print \$1}" | tr '\n' ' '
. Jadi,pkill -f
lebih masuk akal.