Alasannya killall LightsOntidak 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 appletnamun 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, pkilladalah 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, -9hanyalah cara lain untuk mengatakan -KILL.
Sekarang dengan pkilldan 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 LightsOnakan menghentikan aplikasi AppleScript bernama NoLightsOn, jadi selalu gunakan cukup daftar argumen lengkap untuk mengakhiri proses yang benar.
Sebagai referensi:
Dari pkillhalaman manual:
-f Match against full argument lists. The default is to match
against process names.
Dari killallhalaman 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 LightsOnakan melakukannya!