>/dev/null 2>&1 &
이 무엇인지 알아봅니다.
출력을 전부 없애버리고 데몬에서 앱을 구동합니다.
/dev/null 2>&1 &
sample.jar /dev/null 2>&1 &
sample.jar
이란 파일을 실행시키려고 합니다.- 그런데 뒤에 이상한 명령들이 붙어있고 처음에는 굉장히 혼란 스럽습니다.
설명
데몬에서 돌아가라.
/dev/null
위치에다가 넣으라는뜻 입니다.- 이때
/dev/null
은 그냥 없는 공간입니다. 이곳에 넣으라는 이야기는 버리라는 이야기 입니다.
- 이때
2>&1
2
가 의미하는것은 표준 에러입니다.>
가 의미하는것은 그쪽으로 리다이렉트 하라는 뜻입니다&1
가 의미하는것은 표준 출력을 의미하는 것입니다.- 즉 의미하는것은 >dev/null 에다가 표준에러 2 를 표준출력 1로 바꿔 넣으라고 하는것 입니다.
- 만약 에러 로그를 보고 싶다면
dev/null
이 아닌 적절한 위치로 경로를 바꿔주면 됩니다.
- 만약 에러 로그를 보고 싶다면
&
- 데몬, 백그라운드에서 구동시키게 하는것은 맨 뒤의
&
명령입니다.
- 데몬, 백그라운드에서 구동시키게 하는것은 맨 뒤의
정리
sample.jar /dev/null 2>&1 &
sample.jar
를 구동시키는데, 표준에러를 표준출력으로 리다이렉트 하여 버리고 백그라운드에서 구동하라는 뜻입니다.출력을 전부 없애버리고 데몬에서 앱을 구동합니다.
사용되는곳
- 클라우드를 통해 앱을 배포하거나 할때, 해당 명령이 없다면, 계속해서 해당앱으로부터 나오는 출력이 있어 배포에 실패합니다.
- 이런경우에 쉘을 통해 해당 명령으로 배포를 하면 문제없이 배포가 됩니다.
Reference
- https://reebok.tistory.com/56
- https://redcow77.tistory.com/213?category=919764