Kabuğu sadece “X” i tıklatarak veya “ctrl + d” kullanarak kapatmak güvenli midir?


11

Kabuğu sadece "X" i tıklatarak veya "ctrl + d" kullanarak su ile kök olarak oturum açtığınızda kapatmak güvenli mi yoksa "exit" yazarak kapatmak daha mı güvenli? Hiç bir fark var mı (güvenlik açısından) ya da aynı mı ve hangi yolu kullandığınız önemli değil mi?

Yanıtlar:


13

Ctrl-D veya exitaynı.

"X" kullanıyorsanız, pencere yöneticisi kabuğa bir sonlandırma sinyali gönderir. Sonunda da aynı sonuç var. Kabuk tepki vermezse, kullanıcı genellikle bir uyarı alır ve daha sonra kabuğu sona erdirmeye zorlayabilir (eşittir kill -9 $PID).

zshKabuk olarak kullanıyorsanız "X" - ve exit yöntemi arasında küçük bir fark vardır : Çalışmakta olan bir arka plan işleminiz varsa, exit/ ctrl-D ilk kez yalnızca "çalışan işleriniz var" uyarı iletisini üretir, ikinci kez kabuk kapatılır. "X" düğmesiyle, kabuk herhangi bir uyarı yapılmaksızın derhal sonlandırılır.


5
Ayrıca bash'da da bir fark var. Ctrl + d tuşlarına basarsanız, arka plandaki işlemler &çalışmaya devam eder. Eğer "X" yaparsanız, feshedilirler.
Patrick

3
@Patrick bu kabuk yerine terminal emülatörüne bağlı gibi görünüyor. Emülatör açıkça arka plandaki işlemleri öldürmedikçe, bildiğim kadarıyla bash nasıl çıkarsanız çıkın SIGHUP göndermeyecektir. Bunu Mac OS X 10.7.3'te denedim. Terminal arka plandaki işlemleri öldürmez, ancak Xterm (X11'de çalışır). Bunun özellikle Xterm veya X11 davranışı olup olmadığını bilmiyorum.
Chris Page

@jofel bu doğru değil, cevabımı gör.
Patrick

@Patrick bunu işaret ettiğiniz için teşekkürler. Cevabımı düzenleyeceğim veya sileceğim.
jofel

@ jofel nah, silmeyin, zsh bilgileri hala kullanışlıdır. Ben sadece zsh bir çaylağım, bu yüzden orada yorum yapamam. Ama bu iyi bir noktaya işaret ediyor, bu yüzden cevabımı farklı kabukların farklı davranabileceğini ve OP'nin kabuğunu belirtmediği sırada tanımladığım varsayılan davranışın bash bağımlı olduğunu belirtmek için düzenledim.
Patrick

4

Terminal öykünücüsünü kapatmak CTRL + D(seçenek huponexitayarlanmadığı sürece) düğmesine basmakla aynı şey değildir .

  • Terminali kapattığınızda ("X" e tıklayarak), terminal emülatörü kabuğa bir SIGHUP gönderir. Bash bir SIGHUP aldığında, tüm işlerinize bir SIGHUP gönderir.

  • Terminalden CTRL+Dveya logoutveya ile exitçıktığınızda, kabuk tüm işlere SIGHUP göndermeden çıkar. Bu varsayılan davranıştır, ancak bash shoptayarı yapılarak değiştirilebilir huponexit.

Sonuçta hedefiniz arka planda hiçbir şey olmadığından emin olmaksa, "X" i tıklamak daha sade.

.

Yorumunda jofel tarafından sağlanan bilgiler yanlış (üzgünüm jofel). Terminal emülatörünün kabuğun altında hangi işlerin çalıştığına dair hiçbir fikri yoktur, bu nedenle onları sonlandıramaz.

NOT :
Bu davranış tamamen kabuğa bağlıdır. Farklı mermilerin farklı varsayılan davranışları olması tamamen mümkündür.


Tüm Ctrl+dişlem PPID'nin tarafından devralınır 1 = systemd
EDID

1

Fark yok. Öyle ki, ^ D'ye bastığınızda, 'exit' yazmakla aynı şeyi yapıyorsunuz:

$ su -
Password:
# [press ^D]
logout

Evet CTRL+Dve exitaynı soru, pencereyi kapatmak için pencereyi kapatmak için pencere yöneticisinin "X" i tıklamakla ilgili idi exit:-)
Patrick
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.