리눅스에서는 백그라운드로 프로그램을 실행 할 수 있습니다.
동영상을 보면 그냥 실행 했을 경우는 ctrl+c를 누르면 프로그램이 종료 되지만
백그라운드로 실행 할 경우는 ctrl+c를 눌러도 종료 되지 않습니다.
종료 하고 싶을 경우는 kll 명령어를 써서 종료 해야 해요
이 뜻은 그냥 프로그램을 실행 했을 경우 해당 유저아이디가 로그아웃하게 되면
프로그램은 종료되지만 백그라운드로 할 경우 로그아웃 해도 프로그램은 종료되지 않고
계속 실행 하고 있다는 것이에요.
지금은 bash쉘로 간단한 예제를 만들어 본것이지만 이것을 조금 더 응용한다면
php 프로그램도 실행 가능하겠죠.
crontab 없이도 스케줄러로 프로그램을 작동할 수 있다는 의미가 되요.
가령 웹 호스팅을 사용할 경우 crontab에 접근 할 수 없어요
crontab은 root 권한이니깐요.
다음에 기회가 되면 리눅스 웹호스팅에서 스케쥴을 실행 하는 법에 대해서도
올려 볼게요.
다음과 같이 프로그램을 실행한 사용자가 터미널을 종료하면 프로그램도 함께 종료가 된다.
./[실행파일]
이럴 때 nohup을 사용하면 사용자가 터미널을 종료해도 프로그램이 계속 살아있게 된다.
1. nohup
nohup은 리눅스에서 쉘스크립트파일을 데몬형태로 실행시키는 명령어이다.
nohup으로 실행을 시키려면 실행파일 권한이 755이상으로 되어있어야 한다.
뒤에 &를 추가하면 백그라운드로 실행한다.
nohup으로 프로그램을 실행시키면 nohup.log라는 로그 파일이 생성된다.
$nohup [실행파일]
$nohup [실행파일] & // 백그라운드 실행
2. 로그 안 남도록 하는 nohup
nohup으로 프로그램을 실행하면 nohup.log라는 로그가 남게 된다.
로그파일을 안 남게 하려면 다음과 같이 하면 된다
$nohup [실행파일] 1>/dev/null 2>&1 &
1>/dev/null 이 표현은 1의 결과를 /dev/null 이라는 파일 속에 넣는다. /dev/null로 보내버리면 모든 출력을 없애버린다.
2>&1 이 표현은 2번 파일디스크립터를 1번에 지정된 형식과 동일하게 /dev/null로 지정한다.
& 은 프로그램을 백그라운드에서 실행하도록 하는 표현이다.