"su"프로세스는 피할 수 없지만 testbin이 끝나기 전에 끝낼 수 있습니다. "잠"을 사용하여 원래의 질문은 다음과 같습니다
(su - root -c "sleep 120" &) ; ps aux | grep sleep
당신이 GREP의 결과로 다수의 "SU"프로세스를 볼 것이다 그 라인을 여러 번 실행합니다. 서브 프로세스를 배경 처리 는 다음과 같이 끝 부분에 스와 과정을 수 있습니다 :
(su - root -c "sleep 120 &" &) ; ps aux | grep sleep
당신이 "SU"프로세스 목록에서 사라질 것을하지만 수면 명령을 계속 볼 수있는 라인을 여러 번 실행
.
큰 따옴표 안에있는 앰퍼샌드는 하위 프로세스 용이며 괄호 바로 앞에있는 앰퍼샌드는 한 줄로 질문을 수행하고이 경우를 테스트하는 데 필요한 'su'명령에 대한 것임을 유의하십시오.
'execv'와 동일한 명령 줄이 있는지 확인했지만이 경우는 아닙니다. 또한 'su'는 호출자의 권한으로 실행되는 프로세스이고 su의 하위 프로세스는 'su'가 분기하는 프로세스의 권한으로 실행됩니다. 나는 보안상의 이유로 'execv'가 'C'에서 'su'프로세스를 자식으로 대체 할 수 없다는 것이 논리적 인 것처럼 보입니다.
답해 주셔서 고맙습니다. 지금 내 testbin 프로세스 만 나열하고 실제로 su 명령 프로세스였습니다. –