Backend 개발자로서 업무 중에 스크립트를 작성할 일이 많지 않지만, 배포 스크립트를 작성하다 보면 리눅스 잘 모르는 사람으로서 당황스러운 구문이 /dev/null이었다.
java -jar myapplication.jar > /dev/null 2> /dev/null < /dev/null &
이 구문은 다섯가지 구문으로 나눠볼 수 있는데,
java -jar myapplication.jar
=> jar로 되어있는 프로그램을 실행시킨다.
> /dev/null
=> 실행 결과에 대한 응답값(STDOUT)을 무시한다.
2> /dev/null
=> 실행시 오류(STDERR)를 무시한다.
< /dev/null
=> 실행한 곳에 EOF를 전달한다.
&
=> 백그라운드로 실행한다.
/dev/null 자체는 리눅스에서 null device로서 쓰여진 모든 내용이 지워지는 곳이라고 한다.
2라는 숫자는 표준 스트림에 해당하는데,
0 - 표준 입력
1 - 표준 출력
2 - 표준 오류라고 한다.
> /dev/null
에서는 사실 1이 생략되어있는 것과 동일하다고 한다.
STDOUT, STDERR을 무시하는 구문은 두 개를 합쳐서 이렇게 써도 된다고 한다.
> /dev/null 2>&1
OR
&> /dev/null
'Programming > Server' 카테고리의 다른 글
[AWS RDS] Django + Postgresql + RDS 설정하기! (0) | 2017.06.09 |
---|---|
[AWS] AWS에 FileZilla로 SFTP에 접속하기 (0) | 2017.01.26 |
[NGINX] 이것저것 (0) | 2017.01.23 |
[AWS] EC2에 접속하기 (Mac) (0) | 2017.01.13 |
[AWS] Free Tier EC2 인스턴스를 만들어보았다. (0) | 2017.01.13 |