Alasannya killall LightsOn
tidak berhasil adalah karena semua nama proses aplikasi yang menjalankan AppleScript adalah applet
. Misalnya, jalur yang dapat dieksekusi adalah:
../LightsOn.app/Contents/MacOS/applet
Secara umum dan dengan asumsi proses tidak tergantung, orang dapat menggunakan killall applet
namun itu akan menghentikan semua menjalankan aplikasi AppleScript , dan tentu saja yang mungkin tidak diinginkan.
Ketika suatu proses digantung, Anda harus menggunakan KILL
sinyal , misalnya:
killall -KILL applet
Namun, pkill
adalah cara untuk pergi dengan mudah menargetkan aplikasi AppleScript tertentu dan karena itu tergantung ... gunakan KILL
sinyal , misalnya:
pkill -9 -f LightsOn
Atau:
pkill -KILL -f LightsOn
Catatan dalam contoh ini, -9
hanyalah cara lain untuk mengatakan -KILL
.
Sekarang dengan pkill
dan menggunakan -f
opsi , seseorang dapat menggunakan lebih banyak dari daftar argumen lengkap , misalnya:
pkill -9 -f /Applications/LightsOn.app/Contents/MacOS/applet
Maka tidak ada ambiguitas untuk applet
proses mana yang ditargetkan. Orang dapat menggunakan daftar argumen lengkap sebanyak yang diperlukan untuk menargetkan proses yang benar .
Misalnya, pkill -9 -f LightsOn
akan menghentikan aplikasi AppleScript bernama NoLightsOn
, jadi selalu gunakan cukup daftar argumen lengkap untuk mengakhiri proses yang benar.
Sebagai referensi:
Dari pkill
halaman manual:
-f Match against full argument lists. The default is to match
against process names.
Dari killall
halaman manual:
Some of the more commonly used signals:
1 HUP (hang up)
2 INT (interrupt)
3 QUIT (quit)
6 ABRT (abort)
9 KILL (non-catchable, non-ignorable kill)
14 ALRM (alarm clock)
15 TERM (software termination signal)
Perhatikan bahwa ini hanyalah daftar sinyal parsial dan digunakan dengan banyak utilitas berbeda yang dapat menghentikan proses. Lihat berbagai halaman manual dari utilitas yang digunakan untuk informasi tambahan.
pkill -9 -f LightsOn
akan melakukannya!