32

これはfingerコマンドの結果です(私(Vidya)がログインした今日(月曜日))

sekic1083 [6:14am] [/home/vidya] -> finger
Name        Tty       Idle   Login Time    Where
Felix   pts/0        -       Thu 10:06  sekic2594.rnd.ki.sw.
john        pts/1       2d       Fri 15:43
john        *pts/2      2d       Fri 15:43
john      *pts/3       4     Fri 15:44
john      *pts/7       -         Thu 16:25
Vidya      pts/0       -         Mon 06:14
Vidya     *pts/5       -         Mon 06:14
Vidya     *pts/6       -         Tue 10:13
Vidya     *pts/9       -         Wed 05:39
Vidya     *pts/10      -         Wed 10:23

列の下にTty pts/0 and pts/5は、現在アクティブな端末があります。

これらの 2 つとは別にpts/6pts/9pts/10も存在し、先週これらにログインしました。しかし、それらのアイドル時間は「-」(アイドルではない)として表示されます。

これらの 6、9、および 10 端末を強制終了するにはどうすればよいですか?

4

10 に答える 10

41

実行できます:

ps -ft pts/6 -t pts/9 -t pts/10

これにより、次のような出力が生成されます。

UID        PID  PPID  C STIME TTY          TIME CMD
Vidya      772  2701  0 15:26 pts/6    00:00:00 bash
Vidya      773  2701  0 16:26 pts/9    00:00:00 bash
Vidya      774  2701  0 17:26 pts/10   00:00:00 bash

結果からを取得しPIDます。

PIDを使用して、プロセスを強制終了します。

kill <PID1> <PID2> <PID3> ...

上記の例の場合:

kill 772 773 774

プロセスが正常に終了しない場合は、最後のオプションと同様に、を送信して強制的に強制終了できます。SIGKILL

kill -9 <PID>
于 2013-03-04T06:08:10.767 に答える
27

私はあなたと同じ質問をしましたが、私が使用していた gnome 端末を強制終了したかったのです。「who」に関するマニュアルを読んだところ、「-a」オプションを使用して、コンピューターにログインしているすべてのセッションを一覧表示できることがわかりました。 '-l' オプションは、システム ログイン プロセスを出力します。

who -la

誰が私にくれたもの このようなものを取得する必要があります。その後、「kill」コマンドでプロセスを強制終了するだけです。

kill <PID>
于 2014-08-14T15:25:15.727 に答える
1

ポイント番号を知る必要はありません。次のように入力するだけです。

PS すべて | grep バッシュ

それから:

pid1 pid2 pid3 を殺す ...

于 2016-03-25T19:51:19.503 に答える
1

今日も同じ問題がありました。残りのプロセスはありませんでしたが、ユーザー「xxx」の指エントリが残っているため、「userdel xxx」を使用してこのユーザーを削除できませんでした。

エラー メッセージ: userdel: アカウント「xxx」は現在使用中です。

クラッシュした端末セッションのように見えました。それで再起動しましたが、問題は残りました。

last xxx
xxx      pts/5        10.1.2.3     Fri Feb  7 10:25 - crash  (01:27)

そこで、/var/run/utmp ファイルを (再) 移動しました。

mv /var/run/utmp /var/run/utmp.save ; touch /var/run/utmp

これにより、すべての指エントリがクリアされました。残念ながら、この方法では、現在実行中のセッションもクリアされます。これが問題になる場合は、utmp ファイルを (再) 移動した後に再起動する必要があります。

しかし、私の場合、これが解決策でした。その後、「userdel xxx」を使用して、ユーザーを正常に削除できました。

于 2014-02-20T13:05:10.633 に答える
0

killall コマンドも使用できます。

-o, --older-than 指定された時間より古い (以前に開始された) プロセスのみに一致します。時間は浮動小数点数と単位で指定されます。単位は s、m、h、d、w、M、y で、秒、分、時間、日、

-e, --exact 非常に長い名前の完全一致を要求します。

-r, --regexp プロセス名のパターンを拡張正規表現として解釈します。

これは魅力のように機能しました。

于 2015-02-20T11:03:12.813 に答える