プロンプトを受け取る前にどのプロセスが実行されていましたか?

プロンプトを受け取る前にどのプロセスが実行されていましたか?

特定のサーバーにログインすると、以下が表示されます。

Ctrl+C 以前

Last login: ...メッセージは受信しましたが、メッセージは表示されません。私は打っCtrl+Cただけです。それから下のスクリーンショットに示すように、自分のユーザー名とパスワードが正しいことを証明するメッセージが表示されますか?

Ctrl+C の後

今朝からオフィスのWebサーバーでこの問題が発生しました。今日のマシンのディスクを交換したのは偶然ではありませんが、何が起こったのかは、以前のディスクが複製され、システムの他のすべてのユーザーがこの問題を経験していないことです。

何を期待すべきかを知っている人はいますか?

答え1

シェル初期化ファイルの1つの内容に時間がかかります。ログインシェルがbashの場合はset -xor(または)の先頭に追加し、zshの場合はandの上に追加します。これにより、シェルは各コマンドを実行する前に印刷します。追跡をオフにするには、後で実行してください。~/.bash_profile~/.profile~/.bash_login~/.zprofile~/.zlogin~/.zshrcset +x

このコマンドは、システム全体の初期化スクリプトから呼び出されるコマンドです/etc/profile。ファイルを変更することはできませんが、ファイルが実行する操作を確認bash --login -xする必要がある場合は、トレース機能を使用してログインシェルを実行します。

psもう1つの方法は、もう一度ログインして他のツールで何が起こっているのかを確認することです。 Linuxではすべてのプロセスが表示されますps x(通常のテキストはps現在端末で実行されているプロセスのみを表示するため、ここではほとんど利点がありません)。ps -t pts/42端末で実行されているプロセスを制限します/dev/pts/42(2番目のセッションの端末を決定する前に実行する必要があるかもしれませんps x)。

答え2

代わりに、シェルを停止するプロセスを終了するには、Crtl + Zを使用してプロセスを停止し、コマンドを使用してjobsそれが何であるかを確認します。

答え3

$HOME/.bashrc および $HOME/.profile で実行されているコマンドがバックグラウンドで正しく実行されないか、ユーザー入力を待っている可能性があります。まず、これら2つのファイルを見てみましょう。

結果がない場合は、/etc/bashrc、/etc/profile、および/etc/profile.d/*ディレクトリにあるファイルに対応するシステムファイルを確認してください。たぶん、誰か(システム管理者)がログインしたときに実行しようとしているシステム全体のファイルに何かを追加した可能性があります。

関連情報