コマンドラインからMac OS Xをログアウトしたい。OS Xバージョンは10.9です。commandを試しましたpkill -KILL -u uid
が、このコマンドはうまくいきませんでした。AppleScriptではなく、コマンドラインのみを使用してシステムからユーザーをログアウトするために使用できるコマンドはありますか?
コマンドラインからMac OS Xをログアウトしたい。OS Xバージョンは10.9です。commandを試しましたpkill -KILL -u uid
が、このコマンドはうまくいきませんでした。AppleScriptではなく、コマンドラインのみを使用してシステムからユーザーをログアウトするために使用できるコマンドはありますか?
回答:
sudo launchctl bootout gui/$(id -u <username>)
または
sudo launchctl bootout user/$(id -u <username>)
ユーザー名をターゲットユーザーのユーザー名に置き換えるか、サブシェル全体をユーザーのuidに置き換えます。これにより、ユーザーのログインセッションをティアダウンするようにlaunchctlに指示します(guiはユーザーの一時的なログインセッションを具体的に指し、ユーザーはユーザーのバックグラウンドプロセスを指定します)。
sudo
これをテストすることなくログアウトできます。
これはmacOS 10.11.x以降でのみ動作することに注意してください(詳細launchctl help
はこちら)
これは過去に私のために働いています:
ログアウト(確認あり)
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»'
このようにして、実行中のアプリケーションはすべて認識され、安全な方法で終了できます。
複数のユーザーがいる場合....
以下を使用してプロセスIDを見つけます。
ps aux|grep login
次に、そのプロセスを強制終了し、そのセッションをログアウトしました。しかし、多くのプロセスが残っています。
pstree
どのプロセスを終了するかを確認してください。
これは私のためのトリックを行います。
sudo -s
ルート権限と#プロンプトを取得するには、プロセスを強制終了します。
killall -vu username -HUP
そして、それがすべてなくなっていない場合。ヌケエム!必須の警告-ルートとして物事を殺すと、元に戻すことも「ファイルを保存せずにこのプロセスを中断してもよろしいですか。まれにマシンを起動できなくなる可能性のあるシステムクリティカルデータベースを含みます」警告を入力します。
killall -vu username -9
ターミナルに追加する便利なユーティリティは、次のように使用する「ログアウト」コマンドです。
logout UserName
ここで方法:
.bash_profileを編集します
nano ~/.bash_profile
次の行を追加します。
logout() {sudo launchctl bootout user/$(id -u "$1")}
ファイルを保存します ctrl+x
ターミナルを再起動します
あなたは行く準備ができています;)