一寸大海 劫長之井
리눅스에서 콘솔이 종료 되어도 명령 실행 시키기. - nohup 본문
리눅스 콘솔에서 명령을 실행 시킬 때, 백그라운드에서 실행을 시키고 싶을 때가 있습니다.
이때 사용 되는 방식이 뒤에 & 를 찍는 방법과 nohup 을 쓰는 방법이 있습니다.
일단 테스트를 위한 파이썬 프로그램을 만들어 봅시다.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import time
import datetime
def out(string):
print(string)
f = open(string, "w")
f.close()
s = datetime.datetime.now
s = "test"
for i in range(0, 10):
time.sleep(1)
out("%s__Counting_%d " % (s, i))
out("%s__Counting_Complete" % s)
간단한게 설명을 하면. 1초간격으로 열번씩 문자열을 표준출력에 출력하고, 동일 문자열로 파일을 생성하는 예제입니다.
열번이 끝나면 Counting_Complete 라고 찍히게 됩니다. (하지만 이유는 모르겠는데 중간에 생성되는 파일은 파일명이 깨지드라구요.)
1. 일반적인 실행법
python nohup.py 로 실행을 시키면 열한번의 텍스트가 출력 되는 것을 볼 수 있습니다.
ls 로 파일을 확인하면 정상적으로 파일까지 생성 된 것을 알 수 있습니다.
2. 백그라운드 실행
python nohup.py &
로 실행을 하면, 표준출력이 표시 되는 도중에도 텍스트의 입력이 가능하며 ls 명령에도 반응을 하여 중간 파일이 표시 되는 것을 볼 수 있습니다.
단 코드의 실행 중간에 콘솔을 종료 하는 경우! (다만 중간 스크린샷은 없습니다. 찍는거보다 종료가 빠르더군요.)
중간 까지 밖에 실행 되지 않고 중간 되는 것을 알 수 있습니다.
3. nohup 을 사용 하는 경우. (참고 : 제타위키 - http://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_nohup_%EC%82%AC%EC%9A%A9%EB%B2%95)
3-1 nohup 사용법.
보기와 같이
nohup 명령어 [인자값]
으로 사용합니다.
3-2 nohup python nohup.py 로 실행
표준 출력이 콘솔에 표시 되지 않았지만 파일은 정상적으로 출력 되는 것을 알 수 있습니다.
없던 파일이 하나 있지요? nohup의 경우 표준출력이 콘솔로 표시 되지 않고 nohup.out 으로 출력 됩니다.
3-3 nohup python nohup.py후 콘솔 종료.
& 를 사용하는 경우와 다르게 콘솔이 종료 된 이후에도 열한개의 파일이 출력 되는 것을 볼 수 있습니다.
'기타' 카테고리의 다른 글
bash 텍스트 컬러링에 대하여. (0) | 2016.10.13 |
---|---|
Semantic Versioning 유의미적 버전관리. (0) | 2016.08.18 |