Ketika saya menjalankan Zotero / Firefox, mereka sering macet dan saya ditinggalkan dengan proses zombie; setelah ini saya tidak bisa membuka contoh baru Zotero atau Firefox. Saya ingin menyingkirkan proses zombie ini daripada me-reboot, jadi untuk <pid>
proses zombie,
$ ps -p <pid> -o ppid=
memberi saya <parent_pid>
dan
ps aux | awk -v PID=<parent_pid> '$2 == PID {print $0}'
memberitahu saya proses induk adalah /sbin/launchd
untuk pengguna crippledlambda
.
Apakah ada cara untuk me-restart ini tanpa mematikan sistem saya?
sudo kill -1 <parent_pid>
tidak melakukan apa-apa. Saya sudah mencoba menulis ini dalam skrip dan menjalankannya dengan sudo
:
for i in `launchctl list | grep launchd | awk -v PID=<parent_pid> '$1==PID { print $NF }'`; do `launchctl stop $i && launchctl start $i` ; done
dan ini jelas (?) membuat saya dengan layar abu-abu tidak responsif jadi saya harus reboot. Terima kasih sebelumnya atas saran Anda.
launchd
harus selalu membaca status keluar anak-anaknya segera. Jika mereka tidak benar-benar zombie, maka Anda harus membunuh mereka. Dalam kedua kasus itu, membunuhlaunchd
akan menyebabkan lebih banyak masalah daripada menyelesaikannya.Jawaban:
Cara yang tepat untuk berhenti dan mulai menjalankan daemon adalah launchctl unload .
Sebagai contoh:
Anda dapat menghentikan layanan peluncuran daemon menggunakan membongkar subcommand dari launchctl .
Untuk memulai daemon peluncuran yang dinonaktifkan atau dihentikan:
★ Berhati-hatilah dengan menonaktifkan daemon peluncuran secara sembarangan - terutama yang resmi Apple; ini berpotensi membuat sistem Anda tidak dapat di-boot sampai Anda mulai dalam safe mode dan mengaktifkannya kembali secara manual. Anda tidak membunuh launchctl seperti proses normal karena berpotensi mematikan sistem Anda seperti yang Anda alami.
> info lebih lanjut tentang launchctl di sini . (Apple launchctl halaman manual)
sumber
com.apple.bsd.launchdadd.plist
? Saya tidak melihatlaunchd
persis. Dan terima kasih atas peringatannya ...scrun simctl spawn <sim_id> sudo launchctl unload …
. File plist berada di bawah$(xcode-select -p)/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/LaunchDaemons/
Dari halaman manual launchd:
Oleh karena itu bahkan jika Anda bisa menghentikannya, Anda tidak akan dapat memulainya sehingga jawabannya adalah tidak ada cara.
sumber