У меня есть Perl-скрипт, который вызывает sqlldr и загружает данные в таблицу из плоского файла.
Теперь моя проблема в том, что хотя sqlldr загружает таблицу нормально, он возвращает код выхода как -1 (получил с помощью $?
), когда я пытался использовать $!
, он говорит No child processes
.
Я выполняю этот сценарий с помощью команды sudo
sudo -u <uname> bash
<script_name>.pl
Этот сценарий Perl работает нормально, если я выполняю его непосредственно из моего идентификатора пользователя.Я действительно не понимаю, почему эта ошибка появляется только при выполнении через пользователя sudo.
Пожалуйста, помогите мне понять эту ошибку.
РЕДАКТИРОВАТЬ: Это работает нормально, если я дам $SIG{CHLD} = 'DEFAULT';
в моем коде.Но если я уберу этот шаг, проблема снова появится.Я получил этот код от WWW, когда я просматривал эту ошибку.Есть идеи, что он делает?