처음에는 이것이 "daemon" 명령에 대한 명령인 줄 알았 command &
으나 알고 보니 command -D
올바른 명령이었습니다. 정확히 무엇을 하는가 command &
? 이 특정 옵션에 대한 정보는 어디에서도 찾을 수 없으며 이름과 기술 세부정보가 있는지 알고 싶습니다.
답변1
처음에는 쉘이 내장되어 있기 때문에 약간 혼란스러웠습니다 command
(이러한 기능이 존재하는 경우 쉘 함수가 아닌 명령으로 유틸리티를 실행합니다).
너는 사용한다
$ utility &
utility
비동기 프로세스(백그라운드 프로세스/작업)로 시작되었습니다.
bash
매뉴얼 에서 :
명령이 제어 연산자에 의해 종료되면
&
쉘은 서브쉘의 백그라운드에서 명령을 실행합니다. 쉘은 명령이 완료될 때까지 기다리지 않고 상태 0을 반환합니다.
dash
매뉴얼 에서 :
명령이 제어 연산자 & 기호(
&
)에 의해 종료되면 쉘은 명령을 비동기적으로 실행합니다. 즉, 쉘은 다음 명령을 실행하기 전에 명령이 완료될 때까지 기다리지 않습니다.백그라운드에서 명령을 실행하는 형식은 다음과 같습니다.
command1 & [command2 & ...]
(이것은 다음과 같습니다.POSIX 설명&
)
일부 유틸리티(보통 데몬)에는 백그라운드로 이동하게 하는 플래그가 있을 수 있으며 -D
이는 이러한 유틸리티에서 사용되는 일반적인 플래그일 수 있지만 --daemon
또는 -d
. 때때로 -d
(또는 어떤 플래그라도)예방하다유틸리티 자체는 백그라운드로 이동합니다. 예를 들어 sshd -d
SSH 데몬 프로세스가 백그라운드 자체로 이동하는 것을 방지하고 대신 포그라운드 프로세스로 실행되도록 하고 대신 모든 로그 출력을 표준 출력으로 보냅니다 syslog
(이 -d
플래그는 "debug"를 나타냄).
그러나 이러한 플래그에 대한 표준은 없으며 이러한 작업을 지원하는 각 유틸리티는 서로 다른 플래그를 통해 이를 구현할 수 있습니다. 사용 중인 특정 유틸리티에 대한 설명서를 읽어야 합니다.