GNU/Linux >> Belajar Linux >  >> Linux

Apa definisi sesi di linux?

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.


Linux
  1. Apa yang membuat Linux menjadi OS yang berkelanjutan

  2. Apa yang membuat komunitas Linux istimewa?

  3. Linux – Apakah Proses Yang Memiliki Terminal Pengendali, Atau Sesi Yang Memiliki Terminal Pengendali?

  1. Linux vs. Unix:Apa bedanya?

  2. Apa arti &di akhir perintah linux?

  3. Apa arti curl -k -i -X ​​di Linux?

  1. Apa runlevel sistem Linux saat ini?

  2. Apa tujuan dari file .bashrc di Linux?

  3. Di linux, apa arti semua nilai di atas perintah?