컴퓨터를 다시 시작하지 않고 모든 프로세스를 종료하려면 어떻게 해야 합니까?

컴퓨터를 다시 시작하지 않고 모든 프로세스를 종료하려면 어떻게 해야 합니까?

실행 중인 프로세스가 너무 많아서 모두 종료해야 합니다.

여기에 이미지 설명을 입력하세요.

컴퓨터를 다시 시작하지 않고 어떻게 이 작업을 수행할 수 있나요?

답변1

과격하지 말고 좀 더 진지하게죽이다'ing, 유지 관리 모드(일명)로 전환할 수 있습니다.단일 사용자):

# as root:
/sbin/init 1

시스템이 다음으로 전환됩니다.실행 레벨 1, 유지 관리 작업 전용입니다. [거의] 모든 프로세스가 [적절하게] 종료되고, 모든 파일 시스템이 마운트 해제되며, 대화형 로그인이 콘솔(부팅 console매개변수)로 전달됩니다.

나중에 다중 사용자 런레벨로 돌아가십시오:

/sbin/init 3

또는 그래픽 로그인 관리자를 활성화합니다.

/sbin/init 5

답변2

당신은 이것을 할 수 없습니다. 무슨 일을 하든 꼭 해야 할 일은마지막 하나프로세스가 실행됩니다. 아니면 오히려, 당신이할 수 있는그렇게 하면 커널이 코어를 덤프하고 패닉이 발생하게 됩니다. 그런 다음 즉시 재부팅될 수 있습니다. 그렇지 않으면 머신이 재부팅될 때까지 아무 일도 일어나지 않습니다.

커널 공간이 있고 사용자 공간이 있습니다. 사용자 공간은 부팅 시 PID 1로 지원됩니다 init. 죽이다모두프로세스의 주요 목적은 사용자 공간을 없애는 것입니다. 그렇다면 컴퓨터로 무엇을 합니까?

시스템이 부팅되면 시스템의 펌웨어나 일부 중간 부트로더가 메모리에서 커널을 실행합니다. 커널은 몇 가지 온전한 검사를 수행하고 이를 찾습니다 init. 이를 발견하고 init유용한 작업을 수행하면 결국 컴퓨터를 사용할 수 있게 됩니다. 그렇지 않으면 컴퓨터를 사용할 수 없습니다.

부팅 주기의 남은 수명 동안 커널은 init사용자 공간(즉, 하위 공간)에 서비스를 제공합니다. 그것들을 가져가면 아무 의미가 없습니다. 그리고 그럴 가능성이 매우 높아요에 익숙해그것도 기뻐요.

답변3

만약에SysRq 매직 키시스템에서 활성화하려면 Alt+ Print Scrn/SysRq+를 누르 E거나 다음을 실행할 수 있습니다.

echo e > /proc/sysrq-trigger

init(PID 1)을 제외한 모든 프로세스에 SIGTERM을 보냅니다.

Alt++ 또는Print Scrn/SysRqI

echo i > /proc/sysrq-trigger

대신 SIGKILL을 보내세요.

답변4

배포판에서 다음을 사용하는 경우 systemd최소 대상으로 전환할 수 있습니다 systemd.

systemctl isolate emergency.target

이렇게 하면 거의 모든 응용 프로그램이 종료되고 시스템이 단일 사용자 루트 로그인 모드로 전환됩니다. 그런 다음 다음을 실행합니다.

systemctl isolate graphical.target

X로 다시 이동하게 됩니다. 재부팅이 거의 완료됩니다.

관련 정보