Saya telah membaca dari buku sistem Operasi Modern bahwa ketika perintah dijalankan, shell membuat proses anak, menunggu sampai anak selesai dieksekusi dan kemudian menunggu perintah lain dari pengguna. Ini memang kasus untuk banyak program seperti gedit
. Terminal tidak menerima perintah sampai saya menutup gedit
. Namun ketika saya membuka editor kode atom , shell segera kembali, siap untuk menerima perintah berikutnya bahkan dengan editor berjalan. Menutup terminal tidak menutup atom. Apakah ini berarti editor dibuka bukan sebagai proses anak-anak? Apa mekanisme mendasar yang memungkinkan hal ini terjadi?
Berlari ps au | grep atom
memberi
<username> 8042 0.0 0.0 15944 2264 pts/1 S+ 00:55 0:00 grep --color=auto atom
shell
process
background-process
Aswin PJ
sumber
sumber
ps au | grep atom
di terminal dan menambahkan output ke pertanyaan Anda?Jawaban:
Pertanyaannya menanyakan tentang dua jenis program:
Dalam kasus pertama, program yang berinteraksi dengan pengguna di shell dirancang untuk berjalan hingga selesai sebelum mengembalikan kontrol ke shell. Tidak ada yang istimewa yang dilakukan.
Kasus kedua lebih rumit. Biasanya program akan melakukan fork (membuat salinan dirinya dalam memori), dan mengatur untuk menghapus hubungannya dengan terminal pengendali shell , dan dapat menjalankan program lain - yang berjalan secara independen dari shell asli. Anda mungkin melihat pesan dari program kedua, tetapi biasanya tidak berinteraksi dengan Anda. Tergantung bagaimana menggunakannya, Anda mungkin memilikinya
Bacaan lebih lanjut:
sumber
daemon
fungsi library yang melakukan semua ini.