Это помогло бы видеть часть Вашего кода/вывода. Вот мое предположение в первопричине Вашей проблемы.
Во-первых, сигнал 13 приравнивается к SIGPIPE, который в этом случае кажется, указывает, что процесс жемчуга пытается записать в канал (т.е. STDOUT/STDERR), но ничто не там для чтения его.
Я протестировал немного, и мой вопрос, Вы обрабатываете вывод от сценарий в рамках Вашей программы C? В моих тестах, просто обрабатывая вывод сценария жемчуга избежал ошибки SIGPIPE.
Сигнал 13 произвел:
fp = popen("/home/chuckx/perl-test/perl.pl","r");
status = pclose(fp);
Сигнал 13 избежал:
fp = popen("/home/chuckx/perl-test/perl.pl","r");
do {} while (fgets(output,80,fp) != NULL);
status = pclose(fp);
IMO, я не рекомендую изменять fstab
для монтирования папок NFS. Вместо этого вы можете настроить сценарий запуска зависимой службы для монтирования папки NFS перед запуском службы.
Другой вариант - создать новый сценарий запуска в /etc/init.d
для монтирования папки NFS. Вы можете скопировать некоторые из уже имеющихся файлов сервисов и использовать их. Вы должны убедиться, что он содержит строку вроде:
# Required-Start: $network other-stuff...