Ada dev lainnya yang login sebagai root yang ingin saya keluarkan.
Jadi saya menerbitkan
pkill -KILL -u root
Kemudian saya menyadari bahwa saya mungkin membunuh semua jenis proses root.
Apakah saya merusak sistem saya? Saya tidak bisa mencapainya melalui SSH sekarang.
PEMBARUAN: Server web masih berjalan. Tapi saya tidak bisa terhubung dengan SSH sekarang. Saya tidak tahu apa yang telah saya lakukan.
Jawaban:
Jawaban cepatnya adalah Anda membunuh sshd (dan Tuhan tahu apa lagi) dan tidak akan bisa masuk kembali ke sistem menggunakan SSH. Kecuali jika Anda memiliki beberapa metode lain untuk mendapatkan akses ke sistem (seperti konsol jarak jauh, IPMI, dll), Anda perlu me-reboot sistem yang akan mengembalikan layanan SSH dan layanan lainnya.
Semoga Anda memiliki akses fisik ke kotak, dalam hal ini Anda mungkin hanya perlu menekan tombol power. Sadarilah bahwa Anda telah membunuh banyak proses dan bersiaplah untuk sejumlah korupsi. Linux dirancang untuk pulih dari kerusakan sistem, dan pada dasarnya Anda memicu kerusakan 'manual'. Sebagian besar hal akan pulih dengan baik setelah reboot. Anda mungkin memiliki semua jenis pesan kesalahan yang menarik di file log.
Jawaban panjang:
Ini adalah eksperimen pemikiran yang bagus dan pertanyaan wawancara kerja yang bagus. "Apa yang terjadi jika kamu melakukan X ..." Ini adalah hal yang menyenangkan untuk dicoba di mesin virtual pribadi Anda sendiri, tetapi tidak boleh dilakukan pada kotak nyata. Setiap orang membuat kesalahan. Ingat dan pelajari dari kesalahan Anda. Membuat kesalahan adalah cara terbaik untuk belajar. Membuat kesalahan pada produksi adalah pelajaran menyakitkan yang akan terjadi sesekali dalam karir Anda.
Perintah ini akan mengirim 'SIGKILL' (mis
kill -9
. KILL adalah alias untuk SIGKILL) ke semua proses yang dimiliki oleh root. Ini adalah hal yang sangat buruk untuk dilakukan pada suatu sistem.kill -9
harus dihindari kecuali sebagai upaya terakhir.Perintah Anda secara agresif membunuh semua proses yang dimiliki oleh root, proses-proses tersebut segera dibunuh dan tidak diberi kesempatan untuk membersihkan. Untuk memahami apa yang Anda bunuh, masuk ke kotak Linux yang sehat dan daftarkan proses yang dimiliki oleh root, menggunakan perintah seperti ini. Anda biasanya tidak perlu menjadi root untuk menjalankan perintah ini:
Anda mungkin telah membunuh Init (PID # 1) yang memunculkan proses baru. Sistem Anda mungkin tidak dapat membuat proses baru. Jadi, itu mungkin terus berfungsi untuk saat ini tetapi sakit dan perlu diperbaiki sesegera mungkin. Seiring berjalannya waktu, sistem akan semakin sakit. Semakin lama Anda menunggu, semakin buruk hasilnya.
Saya menduga Anda menggunakan Apache. Tampaknya bahwa anak proses dari webserver masih berjalan karena mereka tidak dimiliki oleh pengguna 'root'. Namun, proses webserver induk biasanya dimiliki oleh root dan Anda membunuhnya. Akibatnya, proses anak baru tidak akan muncul. Ini akan baik-baik saja untuk sementara waktu, karena Anda mungkin memiliki cukup proses anak untuk melayani permintaan, dan biasanya proses anak tersebut akan bertahan sampai mereka terbunuh atau terhenti. Sekali lagi, perbaikan tercepat adalah me-reboot mesin.
sumber
Anda kemungkinan besar harus me-restart sistem Anda karena Anda telah membunuh hampir semua layanan penting di dalamnya. Bagaimana Anda melakukannya tergantung pada alat apa yang Anda miliki atau transportasi apa yang Anda miliki untuk sampai ke pusat data.
sumber
Sistem berjalan karena kernel sedang berjalan. Anda tidak dapat mengakses sshd karena Anda telah membunuh daemon. Mungkin init telah dihentikan juga, artinya Anda tidak dapat membuat proses baru. Jadi, koneksi apache baru mungkin tidak terbentuk (parameter konfigurasi diterapkan;)).
Anda tidak dapat mengirim sinyal ke utas kernel, itu sebabnya sistem berjalan tetapi layanan yang dimiliki root telah dihentikan dan untuk kebangkitan normal, Anda harus mem-boot ulangnya.
sumber