백그라운드 작업 하는 방법

Ctrl + z

실행중인 프로그램을 백그라운드로 보내는 단축키. 이 기능을 실행하면 명령어가 일시 정지 된다

  • fg 명령어를 실행하면 foreground로 다시 전환된다
[cookie@cookie ~]$ vi hello.html
# vi 편집기를 사용하다가 Ctrl+z를 누르면 중지
[1]+  Stopped                 vim hello.html

# fg: foreground 전환
[cookie@cookie ~]$ fg
vim hello.html

# ctrl+z
[1]+  Stopped                 vim hello.html

jobs

백그라운드 작업들의 목록을 보여준다

[cookie@cookie ~]$ jobs
[1]+  Stopped                 vim hello.html
# => vim hello.html라는 프로그램이 현재 백그라운드로 실행이 되고 있다는 의미

[cookie@cookie ~]$ jobs
[1]   Stopped                 top
[2]   Stopped                 vim a
[3]-  Stopped                 vim b
[4]+  Stopped                 vim c
# + 표시 : fg 명령어를 실행했을 때, foreground로 나오는 프로그램
# - 표시 : + 표시 다음 순서로 foreground로 실행

# 만약 [2]번 을 fg로 전환하고 싶으면
[cookie@cookie ~]$ jg %2

# [4]을 종료하고 싶으면 
[cookie@cookie ~]$ kill -9 %4 
[4]+  Stopped                 vim c

실행할 때 백그라운드로 실행

&가 명령어 뒤에 붙으면 명령어가 실행될 때 백그라운드로 실행된다
ex) ls -alR / > result.txt 2> error.log &

[cookie@cookie ~]$ ls -alR / > result.txt 2> error.log &
[4] 4580
[cookie@cookie ~]$ jobs
[1]-  Stopped                 top
[2]+  Stopped                 vim a
[3]   Stopped                 vim b
[4]   Running                 ls --color=auto -alR / > result.txt 2> error.log &

[cookie@cookie ~]$
[4]   Exit 1                  ls --color=auto -alR / > result.txt 2> error.log

Daemon

daemon은 '항상 실행되고 있다'는 특성을 갖고, 데몬의 목적을 갖는 프로그램들은 /etc/init.d 디렉토리에 위치한다

$ sudo service apahce2 start/stop

데몬으로 사용되는, service를 사용해서 키고 끄는 모든 프로그램은 start와 stop이라는 2개의 명령어를 가지고 있다

일반 프로그램은 그냥 실행시키면 되지만, 데몬 서비스는 start/stop 명령어를 통해서 우회해서 실행해야 한다

리부팅시 자동 시작 셋팅하기

만약, 컴퓨터가 부팅될 때 자동으로 특정 데몬이 실행되도록 하고 싶다면
rc3.d/ 디렉토리에 아래의 형식처럼 link를 만들면 된다

운영체재를 CLI로 구동하고 있으면 /etc/rc3.d, GUI 방식으로 구동하고 있으면 /etc/rc5.d 아래에, 부팅시 기동될 프로그램의 link 가 위치한다

[cookie@cookie rc3.d]$ ll | grep atop
lrwxrwxrwx  1 root root 18 Jun 25 16:55 S92atopacct -> ../init.d/atopacct
lrwxrwxrwx  1 root root 14 Jun 25 16:55 S96atop -> ../init.d/atop

[cookie@cookie rc3.d]$ ll | grep K
lrwxrwxrwx. 1 root root 20 Apr 27  2016 K50netconsole -> ../init.d/netconsole
  • 파일 소유 권한 lrwxrwxrwx에서 첫번째 알파멧 l은 해당 프로그램이 link라는 표시이다

  • 프로그램명이 S96atop처럼 S(Start)로 시작된다

    • (이 프로그램이 rc3.d 디렉토리 아래 있다면) 콘솔을 통해서 CLI로 부팅된 컴퓨터인 경우에는, 컴퓨터가 실행될 때 이 프로그램이 자동으로 실행된다는 의미이다
  • 프로그램명이 K50netconsole 처럼 K(Kill)로 시작되면, 이 프로그램은 실행되지 않는다

  • 프로그램명 S96atop, S92atopacct 과 같이 생겼을 때, 92, 96 과 같은 숫자들은 우선순위이다.

results matching ""

    No results matching ""