Android

Membunuh arahan dalam linux

10 PERINTAH DASAR DI TERMINAL LINUX UBUNTU

10 PERINTAH DASAR DI TERMINAL LINUX UBUNTU

Isi kandungan:

Anonim

Linux adalah sistem operasi yang hebat dan maju, tetapi ia tidak sempurna. Sekali-kali, sesetengah aplikasi mungkin mula berkelakuan tidak menentu dan menjadi tidak responsif atau mula memakan banyak sumber sistem. Aplikasi yang tidak responsif tidak boleh dimulakan semula kerana proses permohonan asal tidak pernah ditutup sepenuhnya. Satu-satunya penyelesaian ialah sama ada memulakan semula sistem atau membunuh proses permohonan.

Terdapat beberapa utiliti yang membolehkan anda menamatkan proses yang salah dengan kill yang paling biasa digunakan.

kill Perintah

kill adalah shell yang dibina di kebanyakan cengkerang yang berasal dari Bourne seperti Bash dan Zsh. Tingkah laku perintah sedikit berbeza antara cengkerang dan mandiri /bin/kill boleh dilaksanakan.

Gunakan arahan type untuk memaparkan semua lokasi di sistem anda yang mengandungi kill :

type -a kill

kill is a shell builtin kill is /bin/kill

Output di atas menceritakan bahawa shell builtin mempunyai keutamaan atas luaran yang boleh dijalankan, dan ia digunakan setiap kali anda menaip kill . Jika anda mahu menggunakan binari, taipkan laluan penuh ke fail /bin/kill ., kami akan menggunakan Bash builtin.

Sintaks perintah kill mengambil bentuk berikut:

kill…

Perintah kill menghantar isyarat ke proses tertentu atau kumpulan proses, menyebabkan mereka bertindak mengikut isyarat. Apabila isyarat tidak dinyatakan, ia lalai kepada -15 (-TERM).

Isyarat yang paling biasa digunakan ialah:

  • 1 ( HUP ) - Muat semula proses. 9 ( KILL ) - Membunuh proses. 15 ( TERM ) - Anggun berhenti proses.

Untuk mendapatkan senarai semua isyarat yang ada, masukkan arahan dengan pilihan -l :

kill -l

Isyarat boleh dinyatakan dalam tiga cara berbeza:

  1. Menggunakan nombor (mis., -1 atau -s 1 ). Menggunakan awalan "SIG" (mis., -SIGHUP atau -s SIGHUP ). Tanpa awalan "SIG" (misalnya, -HUP atau -s HUP ).

Perintah berikut bersamaan dengan satu sama lain:

kill -1 PID_NUMBER kill -SIGHUP PID_NUMBER kill -HUP PID_NUMBER

PID yang diberikan kepada perintah kill boleh menjadi salah satu daripada yang berikut:

  • Jika PID lebih besar dari sifar, isyarat dihantar ke proses dengan ID sama dengan PID . Jika PID bersamaan dengan sifar, isyarat dihantar ke semua proses dalam kumpulan proses semasa. Dengan kata lain, isyarat dihantar kepada semua proses yang dimiliki oleh GID shell yang memohon perintah kill . Gunakan arahan ps -efj untuk melihat ID kumpulan proses (GIDs). Jika PID bersamaan dengan -1 , isyarat dihantar kepada semua proses dengan UID yang sama dengan pengguna yang menyuruh arahan. Jika pengguna yang menggunakan root, isyarat dihantar kepada semua proses kecuali init dan proses kill itu sendiri. Jika PID kurang daripada -1 , isyarat dihantar ke semua proses dalam kumpulan proses eq dengan GID sama dengan nilai mutlak PID .

Pengguna tetap boleh menghantar isyarat kepada proses mereka sendiri, tetapi bukannya milik pengguna lain, sementara pengguna root dapat menghantar isyarat ke proses pengguna lain.

Proses Pengakhiran Menggunakan Perintah kill

Untuk menamatkan atau membunuh proses dengan perintah kill , pertama anda perlu mencari nombor ID proses (PID). Anda boleh melakukan ini menggunakan perintah yang berbeza seperti top , ps , pidof dan pgrep .

Katakan pelayar Firefox telah menjadi tidak responsif, dan anda perlu membunuh proses Firefox. Untuk mencari pelayar PID menggunakan arahan pidof :

pidof firefox

Perintah ini akan mencetak ID bagi semua proses Firefox:

6263 6199 6142 6076

Sebaik sahaja anda mengetahui nombor proses, anda boleh menamatkan semua itu dengan menghantar isyarat TERM :

kill -9 2551 2514 1963 1856 1771

Daripada mencari PID dan kemudian menamatkan proses, anda boleh menggabungkan arahan di atas menjadi satu:

kill -9 $(pidof firefox)

Proses Reload Menggunakan Command kill

Satu lagi kes penggunaan biasa untuk kill adalah menghantar isyarat HUP , yang memberitahu proses untuk memuatkan semula tetapannya.

Sebagai contoh, untuk memuat semula Nginx, anda perlu menghantar isyarat kepada proses induk. ID proses proses master Nginx boleh didapati dalam fail nginx.pid , yang biasanya terletak di direktori /var/run .

Gunakan arahan cat untuk mencari PID induk:

cat /var/run/nginx.pid

30251

Sebaik sahaja anda mendapati master PID muat semula tetapan Nginx dengan menaip:

sudo kill -1 30251

Arahan di atas mesti dijalankan sebagai root atau pengguna dengan keistimewaan sudo.

Kesimpulannya

Perintah kill digunakan untuk menghantar isyarat ke proses. Isyarat yang paling sering digunakan adalah SIGKILL atau -9 , yang menamatkan proses yang diberikan.

membunuh terminal