bash라는 프로세스가 fork 명령을 통해서 firefox라는 자식 프로세스를 만들면서 웹 브라우저가 실행된다. 위 경우에 firefox는 foreground process로 돌고 있기 때문에 거기다가 다른 명령어를 쳐도 먹지를 않는다.
그래서 파이어폭스를 종료해야만 자식 프로세스가 해제되면서 다시 bash 쉘로 돌아와서 버퍼에 예약되어있던 ls 명령이 실행되게 된다.
명령어 뒤에다가 엠퍼센드(&)를 입력하고 입력해주면, 해당 명령이 백그라운드로 전환되어 실행되면서, firefox라는 백그라운드 자식 프로세스가 생기면서 다시 제어권이 bash라는 부모 프로세스로 반환된다. 고로 bash 터미널에서 이어서 다른 명령어를 사용할 수 있게 된다.
그리고 jobs라는 명령어를 치면 현재 돌고 있는 background process 목록을 확인할 수 있다.
엄청 오래 걸리는 프로세스가 foreground에서 돌고있다고 생각해보자.
그러면 그걸 background로 돌리고 다른 작업을 하고 싶을 수 있을 것이다.
$ ps auwx
지금이야 putty로 터미널을 3개고 4개고 띄울 수 있어서 문제가 안되지만, 터미널을 오직 하나밖에 띄울 수 없는 환경이라면 이 linux foreground / background process 명령어는 굉장히 유용하게 쓰이는 것이다.
여러가지 방법이 있다.
$ dmesg
위 명령으로 커널 메세지를 보면 엄청 많이 나와서 보기 힘들다.
부팅 이후부터 원형큐가 저장하고 있는 모든 메세지를 다 보여주기 때문에 너무 많이 보여줘서 보기 불편하다.
$ sudo cat /proc/kmsg
위 명령을 사용하면 똑같은 내용인데 앞에 <message level>까지 추가해서 보여준다.
$ sudo apt install rsyslog
kern.log를 볼라면 우선 패키지를 하나 설치해줘야 한다.
아래 명령어는 우분투에서 실시간으로 라즈베리파이에서 찍히고 있는 커널 메세지를 tail 명령어에 -f 옵션을 줘서 실시간으로 보여줄 수 있다.
pi@pi14:/var/log $ tail -f kern.log
$ apt-cache search [얼핏 기억나는 패기지명]
자동 시작 및 유지: 시스템 부팅 시에 자동으로 시작되어, 서비스가 항상 실행되도록 유지합니다.
백그라운드 실행: 사용자와 상호작용 없이 백그라운드에서 지속적으로 실행됩니다.
자원 관리: 메모리, CPU 등의 시스템 자원을 효율적으로 관리하며, 필요에 따라 자원을 동적으로 조절할 수 있습니다.
로그 기록: 시스템 로그 또는 특정 로그 파일에 서비스 동작과 관련된 정보를 기록합니다.
신호 처리: 특정 시그널을 받아서 동작을 제어하거나 적절한 조치를 취할 수 있습니다.
상태 모니터링: 서비스의 상태를 지속적으로 모니터링하고, 문제가 발생할 경우 적절한 조치를 취하여 서비스를 복구합니다.
클라이언트 요청 처리: 네트워크 데몬인 경우, 클라이언트로부터의 요청을 수신하고 처리합니다.
환경 설정 로딩: 설정 파일이나 환경 변수를 읽어들여 서비스의 동작을 조정합니다.
서비스 데몬은 주로 리눅스와 유닉스 계열의 운영 체제에서 많이 사용되며, 예를 들어 sshd (SSH 서버 데몬), httpd (웹 서버 데몬), rsyslogd (로그 데몬) 등이 이에 해당합니다.
:%s/gpioLedCnt/GPIOLEDCNT/g
:문자열대상명령/원래문자열을/목적문자열로변경/파일의모든부분에대하여