리눅스 용 C++의 initramfs에 대해 init
에서 일하고 있습니다. 이 스크립트는 LUKS로 암호화 된 드라이브가있는 DM-Crypt의 잠금을 해제하고 사용 가능한 LVM 드라이브를 설정하는 데 사용됩니다.리눅스에서 system() 호출 문제
cryptsetup
과 gpg
의 기능을 다시 구현할 필요가 없으므로 시스템 호출을 사용하여 실행 파일을 호출하고 있습니다. 시스템 호출을 사용하여 gpg를 호출하면 시스템이 완전히 활성화 된 것입니다. (이미 initramfs를 기반으로하는 bash 스크립트를 가지고 있기 때문에 잘 작동합니다. grub을 사용하여 커맨드 라인을 편집하여 오래된 initramfs). 그러나 initramfs에서는 호출 된 것처럼 작동하지 않습니다. system("echo BLAH");
과 같은 명령조차도 실패합니다.
그럼 누구 한테 입력이 있습니까?
편집 : 내 오류의 원인을 파악했습니다. 나는 에 관해서는 단서를 찾지 못했다. 그러나 오류를 발견했다.
는 핫 플러깅을 허용하기 위해, 나는 그러나 나는 (내가 덜 자신을 썼다 함수에) 매개 변수 주위에 전환 결국하지 그래서 /sbin/mdev
에 /proc/sys/kernel/hotplug
를 작성했다 ... /proc/sys/kernel/hotplug
에 /sbin/mdev
를 작성했습니다.
나는 그것이 문제의 원인이 될 수있는 단서가 없다.
도움 주셔서 대단히 감사합니다. 실제로 다른 질문이있을 때'system()'대신'exec()'함수 패밀리를 사용하는 것이 왜 맨 페이지에서 말하는 지 물어 보지 않은 질문에 실제로 응답했습니다. 괜찮으 시다면 파이프 출력에 유용한 링크가 있습니까? (어느 쪽이든, 내가 제안한 책을 주문 했으므로 궁극적으로 좋은 자료를 얻을 수 있습니다.) – Thomas
스티븐스 (Stevens)는 초판 14.2 절에서 그것을 다루고 있습니다. 두 번째 판에서는 15.2 절로 이동했습니다. –
감사합니다. 나는 그것을 반드시 찾을 것이다. – Thomas