Session
biasanya mengacu pada sesi shell. Shell adalah apa yang memungkinkan Anda untuk berinteraksi dengan komputer. Ini bertindak sebagai jembatan antara pengguna dan kernel. Setiap kali Anda menjalankan perintah, shelllah yang menangkap maksud Anda dan memberi tahu kernel untuk melakukan tugasnya.
Di sebagian besar varian Linux, shell default adalah bash
dan bash
baru sesi akan diluncurkan setiap kali Anda membuka terminal baru. Dalam keluaran w
Anda memposting, Anda tampaknya memiliki sesi login grafis Anda (sepertinya Anda mematikan mesin):
argento :0 18set13 ?xdm? 2days 1.58s gdm-session-worker [pam/gdm-password]
Beberapa emulator terminal terbuka:
argento pts/0 18set13 29:26m 5:26 5:26 rdesktop -g 1200x700 -u administrator -p XXXXXXXXX -d DOMAIN -K srv-wsus
argento pts/1 18set13 9days 0.16s 0.16s /bin/bash
argento pts/2 lun10 5.00s 0.09s 7.55s /usr/bin/python /usr/bin/terminator
argento pts/3 14:40 33:41 0.09s 0.03s vim notes.txt
argento pts/4 gio12 26:04m 0.10s 7.55s /usr/bin/python /usr/bin/terminator
argento pts/5 14:56 17:33 0.11s 0.11s /bin/bash
Dan sepertinya Anda juga masuk dari tty non-grafis:
argento tty2 15:11 1:01 0.09s 0.09s -bash
Masing-masing adalah instance terpisah dari shell Anda dan masing-masing dihitung sebagai sesinya sendiri.
1. Meskipun pengguna masuk ke dalam satu proses (shell yang merupakan antarmuka baris perintah mereka), pengguna akhirnya menjalankan banyak proses sebagai hasil dari tindakan seperti:
-> Menjalankan tugas non-interaktif di latar belakang.
-> Beralih di antara tugas interaktif melalui kontrol pekerjaan.
-> Memulai banyak proses yang bekerja bersama melalui pipa.
-> Menjalankan sistem jendela seperti sistem jendela X yang memungkinkan beberapa jendela terminal dibuka.
2. Untuk menangani semua proses ini, kernel perlu membentuk grup proses yang terdiri dari proses-proses ini.
3. Untuk mengatur grup proses ini lebih lanjut menurut pengguna, grup ini dibagi menurut pengguna ke dalam sesi. (Perhatikan di sini pengguna bukan pengguna linux, tetapi shell atau terminal singkatan dari pengguna. Dua terminal pada mesin yang sama login oleh pengguna linux yang sama adalah singkatan dari 2 pengguna yang berbeda dan dengan demikian 2 sesi pengguna yang berbeda di sini. Terminal dapat mengontrol terminal hanya untuk satu sesi).
Proses yang menjalankan shell untuk “pengguna” atau sesi tersebut dikenal sebagai pemimpin sesi.
4. Perhatikan juga menutup terminal dengan menekan tombol 'x' tidak membuat Anda keluar dari terminal itu. Terminal itu terus berjalan di latar belakang. Jika Anda ingin melewati sesi dari terminal, Anda harus keluar dari sana dengan menekan CTRL+D atau keluar.
5. Saat Anda keluar dari terminal, kernel mengirimkan sinyal SIGHUP (mirip dengan kill -1) ke proses yang merupakan pemimpin sesi. Sekarang setiap proses lain yang berjalan di terminal adalah anak dari pemimpin sesi ini. Proses anak ini telah membentuk grup proses yang dikontrol oleh proses pemimpin sesi ini (proses induk).
6. Proses pemimpin sesi mengirim SIGHUP ke setiap proses anak, beberapa proses dihentikan, sementara beberapa dapat memilih untuk tidak menghentikan (yang ditangguhkan atau berjalan di latar belakang). Mereka yang memilih untuk tidak mengakhiri menjadi yatim piatu sebagai sesi berakhir dan segera diadopsi oleh proses init (induk dari semua proses di mesin linux).
Untuk lebih lanjut Lihat Tautan Model Proses Pengembangan Linux
Saya pikir setiap sesi terminal adalah sesi pengguna. Anda dapat memiliki lebih dari satu terminal di bawah X dan itu adalah terminal virtual, atau Anda dapat memiliki terminal nyata di bawah konsol. Itu semua adalah sesi.Ini adalah 'w'
saya$ w
15:14:13 up 9 days, 6:02, 8 users, load average: 1,03, 1,19, 1,31
USER TTY [email protected] IDLE JCPU PCPU WHAT
argento :0 18set13 ?xdm? 2days 1.58s gdm-session-worker [pam/gdm-password]
argento pts/0 18set13 29:26m 5:26 5:26 rdesktop -g 1200x700 -u administrator -p XXXXXXXXX -d DOMAIN -K srv-wsus
argento pts/1 18set13 9days 0.16s 0.16s /bin/bash
argento pts/2 lun10 5.00s 0.09s 7.55s /usr/bin/python /usr/bin/terminator
argento pts/3 14:40 33:41 0.09s 0.03s vim notes.txt
argento pts/4 gio12 26:04m 0.10s 7.55s /usr/bin/python /usr/bin/terminator
argento pts/5 14:56 17:33 0.11s 0.11s /bin/bash
argento tty2 15:11 1:01 0.09s 0.09s -bash
Kolom kedua menunjukkan tty, seperti yang Anda lihat, pts adalah xterm (terminal virtual), yang lain (tty2) adalah login konsol.