Apa definisi dari "sesi" di linux?

Jawaban:

9

Sessionbiasanya mengacu pada sesi shell. Sebuah shell adalah apa yang memungkinkan Anda untuk berinteraksi dengan komputer. Karena berfungsi sebagai jembatan antara pengguna dan kernel . Setiap kali Anda menjalankan perintah, itu adalah shell yang menangkap maksud Anda dan memberitahu kernel untuk melakukan hal itu.

Dalam kebanyakan rasa Linux, shell default adalah bashdan bashsesi baru akan diluncurkan setiap kali Anda membuka terminal baru. Pada output yang wAnda posting, Anda tampaknya memiliki sesi login grafis Anda (sepertinya Anda sedang menggunakan 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 Anda juga tampaknya telah masuk dari tty non-grafis:

argento  tty2      15:11    1:01   0.09s  0.09s -bash

Masing-masing adalah contoh terpisah dari shell Anda dan masing-masing dihitung sebagai sesi sendiri.

terdon
sumber
2

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        LOGIN@   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, karena Anda dapat melihat Poin adalah xterm (terminal virtual) yang lain (tty2) adalah login konsol.

Luigi
sumber
2

1. Meskipun pengguna masuk ke proses tunggal (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 beberapa proses yang bekerja bersama melalui pipa.
-> Menjalankan sistem windowing seperti sistem X window yang memungkinkan beberapa terminal windows dibuka.

2. Untuk menangani semua proses ini, kernel perlu membentuk kelompok proses yang terdiri dari proses-proses ini.

3. Untuk mengatur grup proses ini lebih jauh sesuai dengan pengguna, grup ini dibagi menurut pengguna ke dalam sesi (Catatan: pengguna bukan pengguna linux, tetapi shell atau terminal singkatan dari pengguna. Dua terminal pada mesin yang sama dicatat oleh pengguna linux yang sama singkatan 2 pengguna yang berbeda dan dengan demikian 2 sesi pengguna berbeda di sini. Terminal dapat mengendalikan terminal hanya untuk satu sesi).
Proses yang menjalankan shell untuk "pengguna" atau sesi itu dikenal sebagai pemimpin sesi.

4. Perhatikan juga terminal penutupan 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. Ketika Anda keluar dari terminal, kernel mengirimkan sinyal SIGHUP (mirip dengan kill -1) untuk memprosesnya yaitu ketua sesi. Sekarang setiap proses lain yang berjalan di terminal adalah anak dari ketua sesi ini. Proses anak ini telah membentuk kelompok proses yang dikendalikan oleh proses pemimpin sesi ini (proses induk).

6. Proses pemimpin sesi mengirim SIGHUP ke setiap proses anak, beberapa proses berakhir, sementara beberapa dapat memilih untuk tidak mengakhiri (yang ditangguhkan atau berjalan di latar belakang). Mereka memilih untuk tidak berhenti menjadi yatim piatu sebagai sesi overs dan segera diadopsi oleh proses init (induk dari semua proses di mesin linux).


Untuk lebih banyak lihat Tautan Model Proses Pengembangan Linux

YATIN GUPTA
sumber
1

Sesi adalah setiap shell terminal dijalankan oleh proses pengguna. Sebagai contoh, saya memiliki 3 sesi berjalan sekarang. Lingkungan desktop My Mate, dan dua jendela terminal saya.

Vid Plavsic
sumber