Unix Nohup을 이용해서 로그아웃 후에도 유지되는 쉘 스크립트 실행하기

Unix나 Linux 시스템에서 &나 bg 명령을 사용하여 백그라운드 프로세스로 실행할 때 세션이 종료된 이후에는 일반적으로 프로세스가 종료될 것입니다. 하지만 이것을 피할 수 있는 몇가지 방법이 있습니다. 가령 nohup을 이용하여 명령을 실행하거나 at, batch, cron등을 이용하여 원하는 명령을 반복 실행되도록 할 수 있습니다.

여기서는 nohup을 이용하여 당신이 터미널을 종료한 이후에도 프로세스가 유지되도록 하는 방법에 대해 짧게 알아보겠습니다.

여기서 nohup이라함은 No Hang Up의 의미를 갖으며 아래와 같은 방법으로 사용할 수 있습니다.

$ nohup command-with-options &

Nohup은 쉘스크립트를 실행할 때나 종료까지 매우 오래걸리는 명령을 실행할 때 유용합니다. 이런 경우 명령이 완료될 때 까지 쉘에 연결하고 기다리는것이 어려울 수 있습니다. 하지만 nohup을 이용하면 쉘을 종료한 이후에도 당신의 작업을 지속시킬 수 있습니다.

nohup.out 파일에 대해

기본적으로 명령의 표준출력(Standard Output)은 같은 디렉토리의 nohup.out 파일로 리다이렉트 됩니다. 그리고 표준에러(Standard Error)는 표준출력으로 리다이렉트됩니다. 결과적으로 nohup 명령을 사용할 때 당신의 nohup.out 파일은 표준출력과 표준에러 메시지 모두 기록되게 됩니다.

표준출력과 표준에러를 모두 출력하는 예제 스크립트를 만들어보았습니다. 1>&2는 표준출력을 표준에러로 리다이렉트 시킨다는 의미를 가집니다.

while(true)
do
  echo "standard output"
  echo "standard error" 1>&2 
  sleep 1;
done

스크립트를 별도의 리다이렉트 없이 실행하면 다음과 같은 결과를 확인하실 수 있습니다.

$ nohup sh custom-script.sh &
[1] 12034
$ nohup: ignoring input and appending output to `nohup.out'

$ tail -f nohup.out
standard output
standard error
standard output
standard error
..

다른 로그 파일로 리다이렉트를 구현하면 다음과 같은 결과를 볼 수 있습니다. 표준에러마저 정상적으로 리다이렉트 되고 있는것을 확인하실 수 있습니다.

$ nohup sh custom-script.sh > custom-out.log &
[1] 11069
$ nohup: ignoring input and redirecting stderr to stdout

$ tail -f custom-out.log
standard output
standard error
standard output
standard error
..

리딤코드를 이용한 아이튠즈 미국 계정 사용하기

국내 계정으로 아이튠즈의 앱스토어에 들어가면 게임이라는 항목이 아예 없죠. 정말 우리나라는 IT강국인거 같습니다.

자신의 계정을 미국 계정으로 바꾸시면 수많은 잘만든 게임들을 만나실 수 있는데요 그 방법을 간단하게 정리해 보겠습니다.

여러가지 꼼수가 있었는데 다들 안된다는 것 같더군요. 하지만 아직도 되는 방법이 있어서 소개해 드립니다.

우선 미국의 SNS인 페이스북에 가입합니다. 페이스북의 이벤트를 이용하기 위해서 입니다.

가입을 하셨으면 [이곳]의 애플 학생 이벤트 페이지로 이동합니다. 그리고 오른쪽 상단의 팬되기를 누릅니다.


사용자 삽입 이미지
팬이 된 이후에 What’s New의 20 Free Songs를 누릅니다. 그러면 몇가지 무료 음악들이 나오는데요.

Get Code를 누르면 어떤 코드가 나오는데 이것이 리딤(Redeem) 코드입니다.

이제 아이튠즈로 가서 계정 설정을 변경합시다. 우선 국가를 미국으로 바꾸는데요.

신용카드는 가장 오른쪽에 None이 있습니다. 이것을 선택해 주세요.

그리고 주소가 문제인데요. 좀 깐깐하던데 실제로 존재하는 주소를 입력해 주셔야 합니다.

ZIPCODE까지 확인하더군요. 그래서 전 그냥 구글 본사의 주소로 했습니다;; 잘 되더군요.

전화번호는 대충 입력하셔도 됩니다. 지역번호 3자리, 전화번호 7자리입니다.

그리고 보시면 리딤코드를 입력하는 란이 있는데요, 그곳에 아까 구한 코드를 입력하며 됩니다.

이제 아이튠즈가 갑자기 엄청나게 방대해 집니다. 재밌는 무료 게임들을 받으러 떠나실까요.

참고로 유료 프로그램을 다운 받으실려면, 지금도 되는지는 모르겠지만

홍콩 계정으로 바꾸어 한국 신용 카드(Visa, Master)로 등록하신후에 미국으로 바꾸면 결재가 가능하다고 합니다.

추가로 ———————————————————————————————–

결재 선택 나올때 None이 없다면 그냥 카드로 선택해 두시고 번호에 아무것도 안적으시면 됩니다.