su를 사용하여 루트로 로그인한 경우 "X"를 클릭하거나 "ctrl+d"를 사용하여 쉘을 닫는 것이 안전합니까, 아니면 "exit"를 입력하여 쉘을 닫는 것이 더 안전합니까? 차이점(보안 측면)이 있습니까? 아니면 동일하며 어떤 방식을 사용하는지는 중요하지 않습니까?
답변1
Ctrl-D exit
또는 동일합니다.
"X"가 사용되면 창 관리자는 종료 신호를 쉘에 보냅니다. 같은 결과로 끝났습니다. 셸이 응답하지 않으면 일반적으로 사용자는 경고를 받은 다음 셸을 강제로 종료할 수 있습니다( 같음 kill -9 $PID
).
쉘을 사용하는 경우 "X" 방법과 종료 방법 사이에는 약간의 차이가 있습니다 zsh
. 백그라운드 프로세스가 실행 중인 경우 exit
/ctrl-D는 처음에 "작업을 실행 중입니다"라는 경고 메시지만 생성합니다. 시간, 아니, 주택을 다시 닫으세요. "X" 버튼을 사용하면 경고 없이 쉘이 즉시 종료됩니다.
답변2
터미널 에뮬레이터를 닫는 것은 누르는 것과 다릅니다 CTRL + D
( huponexit
해당 옵션이 설정되지 않은 경우).
터미널을 닫으면("X" 클릭) 터미널 에뮬레이터가 SIGHUP을 셸로 보냅니다. Bash가 SIGHUP을 수신하면 모든 작업에 SIGHUP도 보냅니다.
CTRL+D
logout
또는 를 사용하여 터미널을 종료 하면exit
모든 작업에 SIGHUP을 보내지 않고 쉘이 종료됩니다. 이는 기본 동작이지만shopt
bash 설정을 통해 변경할 수 있습니다huponexit
.
따라서 궁극적으로 백그라운드에서 아무것도 실행되지 않는지 확인하는 것이 목표라면 "X"를 클릭하는 것이 더 안전합니다.
.
jofel은 댓글에 잘못된 정보를 제공했습니다(죄송합니다 jofel). 터미널 에뮬레이터는 셸에서 어떤 작업이 실행되고 있는지 모르므로 해당 작업을 종료할 수 없습니다.
노트:
이 동작은 전적으로 쉘에 따라 다릅니다. 서로 다른 쉘의 기본 동작이 서로 다를 수 있습니다.
답변3
차이 없음. ^D를 누르면 "exit"를 입력하는 것과 동일한 작업을 수행하게 됩니다.
$ su -
Password:
# [press ^D]
logout