linux foreground / background process

kenGwon·2024년 2월 16일
0

[Embedded Linux] BSP

목록 보기
13/36

foreground

bash라는 프로세스가 fork 명령을 통해서 firefox라는 자식 프로세스를 만들면서 웹 브라우저가 실행된다. 위 경우에 firefox는 foreground process로 돌고 있기 때문에 거기다가 다른 명령어를 쳐도 먹지를 않는다.

그래서 파이어폭스를 종료해야만 자식 프로세스가 해제되면서 다시 bash 쉘로 돌아와서 버퍼에 예약되어있던 ls 명령이 실행되게 된다.

background

명령어 뒤에다가 엠퍼센드(&)를 입력하고 입력해주면, 해당 명령이 백그라운드로 전환되어 실행되면서, firefox라는 백그라운드 자식 프로세스가 생기면서 다시 제어권이 bash라는 부모 프로세스로 반환된다. 고로 bash 터미널에서 이어서 다른 명령어를 사용할 수 있게 된다.

그리고 jobs라는 명령어를 치면 현재 돌고 있는 background process 목록을 확인할 수 있다.

background 프로세스를 foreground로 가져오기


엄청 오래 걸리는 프로세스가 foreground에서 돌고있다고 생각해보자.
그러면 그걸 background로 돌리고 다른 작업을 하고 싶을 수 있을 것이다.

  1. 그러려면 우선 ctrl+Z를 눌러서 프로세스 상태를 [Stop/Suspend] 으로 만들어준다. (ctrl+C: 강제종료(interrupt))
  2. 그리고 나서 jobs로 멈춰있는 프로세스의 작업번호를 확인한다.
  3. (1) 이 작업을 다시 foreground로 실행되게 하려면 "fg %1" 명령을 사용한다.
    (2) 이 작업을 background로 실행되게 하려면 "bg %1" 명령을 사용한다.
  4. 프로세스 상태정보를 보려면 아래 명령어를 입력한다.
    $ ps auwx

지금이야 putty로 터미널을 3개고 4개고 띄울 수 있어서 문제가 안되지만, 터미널을 오직 하나밖에 띄울 수 없는 환경이라면 이 linux foreground / background process 명령어는 굉장히 유용하게 쓰이는 것이다.



커널 메세지 편하게 보는 방법

여러가지 방법이 있다.

#(1) dmesg으로 보기

$ dmesg

위 명령으로 커널 메세지를 보면 엄청 많이 나와서 보기 힘들다.
부팅 이후부터 원형큐가 저장하고 있는 모든 메세지를 다 보여주기 때문에 너무 많이 보여줘서 보기 불편하다.

#(2) /proc/kmsg으로 보기

$ sudo cat /proc/kmsg

위 명령을 사용하면 똑같은 내용인데 앞에 <message level>까지 추가해서 보여준다.

#(3) /var/log/kern.log으로 보기

$ sudo apt install rsyslog

kern.log를 볼라면 우선 패키지를 하나 설치해줘야 한다.

아래 명령어는 우분투에서 실시간으로 라즈베리파이에서 찍히고 있는 커널 메세지를 tail 명령어에 -f 옵션을 줘서 실시간으로 보여줄 수 있다.

pi@pi14:/var/log $ tail -f kern.log



apt 패키지 찾고 싶을 때

$ apt-cache search [얼핏 기억나는 패기지명]



~d 데몬 프로세스의 역할

자동 시작 및 유지: 시스템 부팅 시에 자동으로 시작되어, 서비스가 항상 실행되도록 유지합니다.

백그라운드 실행: 사용자와 상호작용 없이 백그라운드에서 지속적으로 실행됩니다.

자원 관리: 메모리, CPU 등의 시스템 자원을 효율적으로 관리하며, 필요에 따라 자원을 동적으로 조절할 수 있습니다.

로그 기록: 시스템 로그 또는 특정 로그 파일에 서비스 동작과 관련된 정보를 기록합니다.

신호 처리: 특정 시그널을 받아서 동작을 제어하거나 적절한 조치를 취할 수 있습니다.

상태 모니터링: 서비스의 상태를 지속적으로 모니터링하고, 문제가 발생할 경우 적절한 조치를 취하여 서비스를 복구합니다.

클라이언트 요청 처리: 네트워크 데몬인 경우, 클라이언트로부터의 요청을 수신하고 처리합니다.

환경 설정 로딩: 설정 파일이나 환경 변수를 읽어들여 서비스의 동작을 조정합니다.

서비스 데몬은 주로 리눅스와 유닉스 계열의 운영 체제에서 많이 사용되며, 예를 들어 sshd (SSH 서버 데몬), httpd (웹 서버 데몬), rsyslogd (로그 데몬) 등이 이에 해당합니다.



vim 치환명령 (명령모드)

:%s/gpioLedCnt/GPIOLEDCNT/g
:문자열대상명령/원래문자열을/목적문자열로변경/파일의모든부분에대하여
profile
스펀지맨

0개의 댓글