OS X 10.9의 명령 행에서 사용자를 로그 아웃하는 방법


31

명령 행에서 Mac OS X을 로그 아웃하고 싶습니다. 내 OS X 버전은 10.9입니다. command 명령을 시도 pkill -KILL -u uid했지만이 명령이 작동하지 않았습니다. AppleScript가 아닌 명령 줄 만 사용하여 시스템에서 사용자를 로그 아웃하는 데 사용할 수있는 명령이 있습니까?


정확히 해결되지 않은 것은 무엇입니까?
nohillside

pkill -KILL -u uid 명령을 실행하면 시스템에 나에게 회색 화면이 표시되고 오랫동안 대기하면 시스템에서 응용 프로그램이 실행되지 않고 강제 종료 창이 표시됩니다.
prateeak ojha

답변:


32

sudo launchctl bootout gui/$(id -u <username>)
또는
sudo launchctl bootout user/$(id -u <username>)

username을 대상 사용자의 사용자 이름으로 바꾸거나 전체 서브 쉘을 사용자의 uid로 바꾸십시오. 이것은 launchctl에게 사용자 로그인 세션을 해제하도록 지시합니다 (gui는 특히 사용자의 임시 로그인 세션을 나타내며, 사용자는 사용자 백그라운드 프로세스를 지정합니다).

sudo이것을 테스트 하지 않고 스스로 로그 아웃 할 수 있습니다 .

이것은 macOS 10.11.x 이상에서만 작동합니다 (자세한 내용 참조 launchctl help).


1
질문을 다시 읽었지만 도움이되지 않아 죄송하지만 Google 검색 결과에 표시됩니다.
Iain Henderson

29

터미널 (또는 원격 ssh 세션)에서 순수하게 로그 아웃하려면 loginwindow 프로세스를 종료하십시오.

sudo pkill loginwindow

여러 사용자가 로그인 창 프로세스를 사용하는 경우 사용자를 화려하게 만들고 사용자를 지정할 수 있지만 이는 사용자의 그래픽 세션을 종료하는 즉각적인 방법이 아닌 한 번의 쉬운 방법입니다.


16

이것은 과거에 저에게 효과적이었습니다.

로그 아웃 (확인)

osascript -e 'tell app "System Events" to log out'

직접 로그 아웃 (확인 없음)

osascript -e 'tell app "System Events" to  «event aevtrlgo»'

또는

osascript -e 'tell application "loginwindow" to  «event aevtrlgo»'

이렇게하면 실행중인 모든 응용 프로그램이 눈에 띄고 안전한 방식으로 종료 될 수 있습니다.


osascript -e '앱 "시스템 이벤트"에«이벤트 aevtrlgo»로 오류 표시 : "<"이 (가)이 오류를 표시 할 수 없습니다.
prateeak ojha

흠, 나에게 잘 작동합니다. 커맨드 라인 대신 쉘 스크립트에서 시도해 볼 수 있습니까? 쉘은 여기서 이상한 일을합니다.
nohillside

OP에 다른 문제가 있고 여기에있는 의견과 질문 설명에서 정상적인 명령이 끊어지고 있다고 생각합니다.
bmike

5
«≠ <<
mlainz

2

여러 사용자가있는 경우 ....

다음을 사용하여 프로세스 ID를 찾으십시오.

ps aux|grep login

그런 다음 해당 프로세스를 종료하고 해당 세션을 로그 아웃하십시오. 그러나 많은 절차가 남아 있습니다.

pstree종료 할 프로세스를 확인하십시오 .


2

이것은 나를 위해 속임수를합니다.

sudo -s

루트 권한과 # 프롬프트를 얻으려면 프로세스를 종료하십시오.

killall -vu username -HUP

그리고 그것이 모두 사라지지 않았다면. 핵무기! 강제 경고-루트로 사물을 제거해도 실행 취소가 발생하지 않으며 "시스템을 드물게 부팅 할 수없는 시스템 중요 데이터베이스를 포함하여 파일을 저장하지 않고이 프로세스를 중단 하시겠습니까?" 유형 경고.

killall -vu username -9

1
루트 쉘에 들어갈 필요가 없습니다
-killall

1

터미널에 추가 할 수있는 유용한 유틸리티는 다음과 같이 사용되는 "logout"명령입니다.

logout UserName

방법은 다음과 같습니다.

  1. .bash_profile 편집

    nano ~/.bash_profile

  2. 이 줄을 추가하십시오 :

    logout() {sudo launchctl bootout user/$(id -u "$1")}

  3. 파일을 눌러 저장 ctrl+x

  4. 터미널을 다시 시작

당신은 갈 준비가되어 있습니다;)


나는 몸을 새로운 줄로 나누고 그 후에 닫는 중괄호를 넣어야했습니다.
bmauter

@bmauter는 나를 위해 제안 된 형태로 완벽하게 작동하지 않습니다.
Kappe

-3

ssh를 사용하여 원격 컴퓨터에 로그인 한 경우 간단히 'exit'을 입력하여 로그 아웃 할 수 있습니다.

[host:~user]$ exit
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.