자체 쉘에서 작업 중인데 작업 관리에 대해 혼란스럽습니다.
사용자가 소유한 프로세스를 나열하고 해당 pid가 지정된 모든 프로세스를 일시 중지할 수 있습니다. 그러나 제목에서 알 수 있듯이 일시 중지된 작업을 실행 상태 및 배경 또는 전경으로 다시 시작해야 합니다.
내 명령은 다음과 같습니다
mybg <PID>
myfg <PID>
이제 해당 pid를 사용하여 프로세스 이름을 얻고 프로세스 이름과 함께 bg/fg를 사용하고 싶습니다. 이것은별로 도움이되지 않습니다.
답변1
작업을 일시 중지하는 방법은 무엇입니까? 내가 아는 유일한 방법은 SIGSTOP을 보내는 것입니다. 이는 bash에서 Ctrl-Z를 사용하여 포그라운드 작업을 수행할 수 있습니다.
이후에는 더 이상 실행되지 않으므로 더 이상 포그라운드 작업이 아니므로 키보드가 이에 연결되지 않습니다. 쉘은 포그라운드 작업이므로 쉘 fg 또는 bg를 하위 프로세스로 지정해야 합니다.
그러나 셸은 중지를 해제하기 위해 작업에 SIGCONT를 보냅니다. 프로세스는 이러한 신호를 직접 얻지 않습니다. 커널은 Pid의 실행 상태를 변경하고 스케줄러는 작업이 중지됨 상태인 경우 해당 작업을 무시합니다.
kill -STOP %1
bash 에서와 같이 직접 또는 (작업 ID 또는 pid)를 사용할 수도 있습니다 kill -STOP 14193
.-CONT