프롬프트를 받기 전에 어떤 프로세스가 실행 중이었나요?

프롬프트를 받기 전에 어떤 프로세스가 실행 중이었나요?

특정 서버에 로그인하면 다음이 표시됩니다.

Ctrl+C 이전

Last login: ...메시지는 받았지만 메시지는 표시 되지 않습니다. 쳤는데 Ctrl+C쳤을 뿐이야그 다음에아래 스크린샷과 같이 내 사용자 이름과 비밀번호가 정확하다는 것을 증명하는 메시지가 표시됩니까?

Ctrl+C 후

오늘 아침부터 사무실 웹서버에서 이 문제가 발생했습니다. 오늘 머신의 디스크를 교체한 것은 우연이 아니지만 발생한 모든 일은 이전 디스크가 복제되었고 시스템의 다른 모든 사용자는 이 문제를 경험하지 않았다는 것입니다.

무엇을 기대해야 할지 아는 사람 있나요?

답변1

쉘 초기화 파일 중 하나의 내용에 시간이 오래 걸립니다. 로그인 쉘이 bash인 경우 set -xor(또는) 맨 위에 추가하고, zsh인 경우 and 맨 위에 추가하십시오. 이렇게 하면 쉘이 각 명령을 실행하기 전에 인쇄합니다. 추적을 끄려면 나중에 실행하세요.~/.bash_profile~/.profile~/.bash_login~/.zprofile~/.zlogin~/.zshrcset +x

이 명령은 시스템 전체 초기화 스크립트에서 호출되는 명령일 수 있습니다 /etc/profile. 파일을 변경할 수 없지만 파일이 수행하는 작업을 확인해야 하는 경우 추적 기능을 사용하여 로그인 셸을 실행하세요(예: bash --login -x.

ps또 다른 방법은 다시 로그인하여 다른 도구에 무슨 일이 일어나는지 지켜보는 것입니다. Linux에서 모든 프로세스를 표시합니다 ps x(일반 텍스트는 ps현재 터미널에서 실행 중인 프로세스만 표시하므로 여기서는 거의 이점이 없습니다). ps -t pts/42터미널에서 실행 중인 프로세스를 제한합니다 /dev/pts/42(두 번째 세션의 터미널을 결정하려면 먼저 실행해야 할 수도 있습니다 ps x).

답변2

대신, 쉘을 중단시키는 프로세스를 종료하려면 Crtl+Z를 사용하여 프로세스를 중지한 다음 jobs명령을 사용하여 그것이 무엇인지 확인하십시오.

답변3

$HOME/.bashrc 및 $HOME/.profile에서 실행 중인 명령이 백그라운드에서 올바르게 실행되지 않거나 사용자 입력을 기다리고 있을 수 있습니다. 먼저 이 두 파일을 살펴보겠습니다.

결과가 없으면 /etc/bashrc, /etc/profile 파일과 /etc/profile.d/* 디렉터리에 있는 파일에 해당하는 시스템 파일을 살펴봅니다. 어쩌면 누군가(시스템 관리자)가 로그인할 때 실행을 시도하는 시스템 전체 파일에 무언가를 추가했을 수도 있습니다.

관련 정보