sudo cp를 실행하면 두 개의 프로세스가 표시되는 이유

sudo cp를 실행하면 두 개의 프로세스가 표시되는 이유

CentOS 컴퓨터에서 일부 파일과 폴더를 복사하려고 합니다.

저는 이렇게 합니다. sudo cp source destination &백그라운드에서 실행합니다.

cp실행하면 이제 세 개의 프로세스가 있는 것을 볼 수 있습니다 ps aux | grep cp. 그 중 하나는 grep명령 자체이고 나머지 두 개는 cp위 명령의 복사본입니다. 하나는 위에 나열된 전체 명령을 포함하고 다른 하나는 sudo이전 명령이 없습니다. 두 프로세스의 PID도 하나씩 다릅니다. 둘 다의 소유자는 루트로 나열됩니다.

왜 두 가지 프로세스가 있습니까?

답변1

이 두 프로세스는 sudo한편으로는 cp다른 한편으로는 있습니다. 당신이 달릴 때

sudo cp source destination &

쉘은 sudo전체 명령줄로 시작합니다. 그런 다음( sudosetuid이기 때문에 실행 중) 이렇게 실행이 허용되는지 확인한 다음 분기하고 시작합니다. 따라서 런타임에 및 프로세스를 볼 수 있습니다.rootrootcpcpcpsudocp

관련 정보