コマンドラインから他のユーザーをログアウトする


67

ログインしているユーザーが多すぎると、使用可能なRAMの量が少ないためにコンピューターが非常に遅くなり、動作が遅くなることがあります。各ユーザーに手動で切り替えてログアウトするのではなく、コマンドラインから他のユーザーをすばやくログアウトできるようにしたいと思います。

これは可能ですか?

回答:


68

これは一つの答えです

who -u

それはあなたにPIDを与えます

その後、ユーザーセッションを強制終了できます。

kill "pid"

これは機能しますが、奇妙な副作用があります。
イザヤ

@DoR ...これは..?
オリ

4
@Oli GDMの再起動など、機能していなかったユーザーを強制終了した。
イザヤ

1
@AlvinR​​owあなたが実行した場合ps auxf、あなたが気づくこのメソッドは、現在のユーザーによって実行されているすべてのプロセス(そう殺さないこと(一番左の列は、有効なユーザ名を持っている)おそらくあなたはログアウトしていませんが)。@preciseの方法はこの問題に対処しているようですが、私はを送信することに不安を感じていSIGKILLます。
ドール

のようなものがないshutdownため、強制的にログアウトする前に警告を出すことができます(作業を保存できるようにする)。オプションとして、セッションを変更するかのようにログインに切り替え、ユーザーセッションをバックグラウンドで実行したままにします。
pbhj

28

whoどのユーザーがログインしているかを確認するために使用できます:

who

次のコマンドを使用して、ユーザーKILLプロセスにシグナルを送信することにより、ユーザーをログアウトできます。

sudo pkill -KILL -u <username>

(これはと同じですsudo pkill -9 -u <username>

例:

sudo pkill -9 -u guest-2Rw4Lq

(という名前のゲストセッションユーザーを殺すためguest-2Rw4Lq


これは私に最適です。単純に実行kill "pid"すると、まだ実行中のユーザーによって大量のプロセスが残され、これによりすべてが終了しました。
thebaer

1
なぜSIGKILLデフォルトではないのですSIGTERMか?SIGKILL健康的ではありません...
ドール

sudo pkill -KILL -u <username>私にとっては、最初のコンソールセッションに切り替えました。現在のセッションが終了したと思いましたが、ctrl + alt + F7で現在のグラフィカルセッションに戻りました。
pbhj

3
who -u


> adam     ttys000  Aug  4 09:22   .       91228 

それから

sudo kill 'PID number'
sudo kill 91228

PID(プロセスID)は、ユーザー読み出しの最後の4桁または5桁の数字です(91228)


1
画像に4桁の数字が表示されていませんか?
ドロンツ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.