무한 루프를 도는 프로세스를 중지 하는 방법
터미널에서
yes > /dev/null
명령으로 무한 루프를 도는 단순한 프로세스를 생성명령프롬프트 창을 하나더 열어서 yes 명령어는 단순하게 무한히 y만 출력하고 있지만 해당 명령어를 사용하면 아무것도 아닌(아무반응없는) 장치를 말한다.
명령으로 프로세스 번호를 확인한다.ps -ef | grep yes
사진을 보면 제일 앞에 나오는 root는 소유주, 그 다음 3404는 프로세스 번호, 3393은 부모 프로세스 번호이다. 프로세스 번호를 확인한 모습
프로세스 번호를 확인했다면
kill -9 프로세스 번호
명령으로 프로세스를 종료한다.
죽었다고 나온 모습 kill 명령어로 프로세스를 종료하면 기존의 다른 터미널에서 실행되던 것이 자동으로 종료되는 것을 확인 할 수 있다.
현재 작동중인 포그라운드 프로세스를 그냥 종료하려면 프로세스가 실행되고 있는 터미널에서 컨트롤+C 를 눌러도 된다.
포그라운드 프로세스 -> 백그라운드 프로세스 -> 프로그라운드 프로세스로 프로세스의 상황을 바꿔보자
다시 yes > /dev/null 명령으로 포그라운드 프로세스를 생성한다.
컨트롤 + z를 눌러 프로세스를 일시 중지 시키고, bg 명령으로 잠시 중지된 프로세스를 백그라운드 프로세스로 계속 실행한다.jobs 명령을 입력하면 현재 백그라운드로 가동중인 프로세스를 확인 할 수 있다.
제일 앞에 나오는 것이 '작업 번호' 이다.fg 작업번호
명령을 입력하면 다시 포그라운드 프로세스로 만들 수 있다.
컨트롤 + C를 눌러 프로세르르 종료한다.
이번에는 명령 실행 시 처음부터 백그라운드로 실행되도록 하는 방법
gedit 명령으로 에디터를 실행한다. 그런데 명령을 입력한 터미널은 더 이상 사용 할 수 없다.컨트롤 + C를 눌러야 종료되긴한다. 그러나 이 프로그램을
gedit &
입력하면 터미널을 계속 사용할 수 있게 된다.
root@server:~# 이러면서 사용할 수 있게된다. 즉 명령어 뒤에 붙이는 &는 백그라운드로 프로세스 실행하겠다는 의미이다.
이와 같은 방법으로 프로세스 실행 시 바로 백그라운드 프로세스로 만들 수 있다. 즉 모든 명령어 뒤에 &를 붙이면 자동으로 백그라운드로 실행된다. 그런데 사용 시 주의할 사항이 있다.
fireFox, gedit 등은 별도의 창에서 실행되므로 백그라운드로 실행해도 아무 문제가 없다.
또 xz, bzip2, gzip 과 같은 압축 프로그램은 대용량 파일을 압축할 경우 시간이 많이 소요되므로 백그라운드 프로세스로 실행하면 유용할 것이다.
반대로 vi 에디터와 같이 현재 터미널에서 입출력해야 하는 프로세스를 백그라운드 프로세스로 실행하는 것은 아무런 의미가 없다.
즉 vi파일이름 & 명령을 실행해도 화면에서 입출력할 수 없으므로 무의미 하다.
'리눅스공부 > 명령어와 필수 작동법' 카테고리의 다른 글
[텍스트모드]리눅스 텍스트 모드 웹 브라우저 / 리눅스 텍스트 모드 웹 접속 / 리눅스 텍스트모드 (0) | 2023.01.03 |
---|---|
[개념] 리눅스의 서비스와 소켓 (0) | 2022.12.19 |
[개념] 프로세스/데몬/서비스 (0) | 2022.12.18 |
[개념] 파이프/필터/리디렉션 (0) | 2022.12.18 |
[네트워크 설정] DNS 서버설정을 통해 서버상태 확인하기 (0) | 2022.12.18 |
댓글