"command &" 실행과 "command -D" 실행의 차이점은 무엇입니까?

"command &" 실행과 "command -D" 실행의 차이점은 무엇입니까?

처음에는 이것이 "daemon" 명령에 대한 명령인 줄 알았 command &으나 알고 보니 command -D올바른 명령이었습니다. 정확히 무엇을 하는가 command &? 이 특정 옵션에 대한 정보는 어디에서도 찾을 수 없으며 이름과 기술 세부정보가 있는지 알고 싶습니다.

답변1

처음에는 쉘이 내장되어 있기 때문에 약간 혼란스러웠습니다 command(이러한 기능이 존재하는 경우 쉘 함수가 아닌 명령으로 유틸리티를 실행합니다).

너는 사용한다

$ utility &

utility비동기 프로세스(백그라운드 프로세스/작업)로 시작되었습니다.

bash매뉴얼 에서 :

명령이 제어 연산자에 의해 종료되면 &쉘은 서브쉘의 백그라운드에서 명령을 실행합니다. 쉘은 명령이 완료될 때까지 기다리지 않고 상태 0을 반환합니다.

dash매뉴얼 에서 :

명령이 제어 연산자 & 기호( &)에 의해 종료되면 쉘은 명령을 비동기적으로 실행합니다. 즉, 쉘은 다음 명령을 실행하기 전에 명령이 완료될 때까지 기다리지 않습니다.

백그라운드에서 명령을 실행하는 형식은 다음과 같습니다.

command1 & [command2 & ...]

(이것은 다음과 같습니다.POSIX 설명&)

일부 유틸리티(보통 데몬)에는 백그라운드로 이동하게 하는 플래그가 있을 수 있으며 -D이는 이러한 유틸리티에서 사용되는 일반적인 플래그일 수 있지만 --daemon또는 -d. 때때로 -d(또는 어떤 플래그라도)예방하다유틸리티 자체는 백그라운드로 이동합니다. 예를 들어 sshd -dSSH 데몬 프로세스가 백그라운드 자체로 이동하는 것을 방지하고 대신 포그라운드 프로세스로 실행되도록 하고 대신 모든 로그 출력을 표준 출력으로 보냅니다 syslog(이 -d플래그는 "debug"를 나타냄).

그러나 이러한 플래그에 대한 표준은 없으며 이러한 작업을 지원하는 각 유틸리티는 서로 다른 플래그를 통해 이를 구현할 수 있습니다. 사용 중인 특정 유틸리티에 대한 설명서를 읽어야 합니다.

관련 정보