Untuk mematikan proses yang berjalan pada mesin, beberapa proses lokal (atau kernel) harus mengeluarkan sinyal mematikan. Jadi Anda memerlukan cara untuk menyebabkan proses memancarkan sinyal itu, dan karena Anda tidak dapat membuat proses baru, Anda perlu menemukan cara yang bergantung secara eksklusif pada proses yang sudah berjalan.
Tidak ada daemon standar yang dapat membantu Anda di sana. Mereka semua akan memproses otentikasi Anda, kemudian melakukan proses baru (seperti shell) yang berjalan seperti Anda. Jadi jika Anda tidak memiliki akses konsol dan tidak ada interaksi dengan mesin, Anda kurang beruntung.
Dari komentar Anda, sepertinya Anda masih memiliki shell di mesin. Lalu ada hal yang bisa Anda lakukan. Anda tidak dapat menjalankan proses eksternal apa pun, seperti ls
atau ps
. Tetapi Anda dapat menjalankan perintah bawaan seperti echo
, read
, dan kill
( kill
bukan built-in di semua shell, tetapi itu adalah satu di semua shell yang mendukung kontrol pekerjaan, seperti bash dan zsh).
Setiap proses memiliki direktori terkait di bawah /proc
: /proc/12345
di mana 12345 adalah id proses. Dengan demikian, Anda dapat memperoleh beberapa informasi tentang keberadaan dengan menjelajahi /proc
. echo
dengan wildcard sangat membantu di sini, mis. cd /proc; echo [0-9]*
menunjukkan id proses semua proses yang berjalan. Jika shellnya zsh, Anda bisa melakukan banyak hal dengan kualifikasi glob; contohnya echo /proc/*(u$UID)
hanya menunjukkan proses yang berjalan di bawah id pengguna Anda.
Cara untuk menampilkan konten file tanpa forking adalah
while read -r line; do
echo "$line"
done </path/to/file
Anda dapat membunuh banyak proses sekaligus dengan menyerahkan semuanya kill
. Jika Anda telah mengidentifikasi suatu proses yang termasuk daemon Anda, coba bunuh grup prosesnya dengan kill -9 -PGID
dimana PGID
adalah id proses dari pemimpin grup. Anda dapat menemukan id grup proses dari proses 123 dengan </proc/123/stat read pid tcomm state ppid pgrp sid more; echo $pgrp
. (Informasi yang sama ada dalam bentuk yang lebih mudah dibaca di /proc/123/
tetapi Anda tidak dalam kondisi yang baik untuk membacanya.) Anda juga dapat mencoba mengirim sinyal ke semua proses Anda (termasuk shell yang berasal) dengan
trap : NUM
kill -NUM -1
Pilih nilai NUM selain KILL
(9) sehingga trap
perintah tidak menyebabkan shell Anda mengabaikan sinyal ( KILL
tidak bisa dijebak).