다양한 콘솔에서 많은 작업이 실행되고 있습니다.
CPU 사용량을 거의 모두 차지하므로 시스템 제어가 어렵습니다(응답 시간이 매우 느림).
이 콘솔을 일시 중지할 수 있는 방법이 있나요? 아니면 다른 방법이 있나요?
#고쳐 쓰다
저는 실제로 여러 다른 콘솔에서 Yocto를 구축하고 있는데 특정 프로세스를 조정하는 것이 어려운 것 같습니다. 그리고 Yocto를 구축할 때 많은 다른 프로세스가 실행 중이고 반복적으로 종료되고 또 다른 새로운 프로세스가 시작될 수 있습니다.
답변1
포그라운드 프로세스인 경우 ctrl +z
실행 중지 포그라운드 명령을 사용하여 프로세스를 백그라운드에 넣을 수 있습니다. 이때 fg를 사용하여 깨우고 포그라운드에 놓을 수 있습니다.
liruilong@liruilongs:~$ jobs
liruilong@liruilongs:~$ sleep 2000
^Z
[1]+ Stopped sleep 2000
liruilong@liruilongs:~$ jobs
[1]+ Stopped sleep 2000
liruilong@liruilongs:~$ fg
sleep 2000
프로세스 우선순위를 수정하는 것 외에도 cgroup
프로세스가 시작될 때 리소스를 제한하는 것도 고려할 수 있습니다.
사용하는 경우 systemd
프로세스의 리소스를 로 제한할 수 있습니다 cgroup
.
┌──[[email protected]]-[~]
└─$ systemd-run -p MemoryLimit=5M -p CPUShares=100 --unit=sleep-50 --slice=test sleep 50
Running as unit sleep-50.service.
답변2
프로세스를 일시 중지하는 방법에는 여러 가지가 있습니다.
고정하려면 SIGSTOP을 프로세스에 보냅니다(고정 해제하려면 SIGCONT). Ctrl+S(Ctrl+Q)를 눌러 이러한 신호를 활성 프로세스로 보낼 수도 있습니다. 하지만 백그라운드에 있는 경우에는
kill
또는 그 변형을 사용해야 합니다 .nice
프로세스의 우선순위를 설정하는 데 사용됩니다 . 기본적으로 모든 사용자 프로세스는 10으로 설정되므로 동일한 CPU를 얻습니다. 프로세스가 중요하지 않고 속도가 느려질 수 있다면 친근감을 높이세요. 프로세스에 우선순위가 필요한 경우 niceness를 줄이세요.필요하지 않은 프로세스는 중지하세요 :)