Итак, у меня есть php script, который я выполняю, используя следующую команду:
php -f my_script.php myArguments
script находится под управлением версии с помощью svn. Я просто обновил его, вставил команду, чтобы запустить ее в терминал, и выполнил ее. Однако выхода нет. Не сообщение об ошибке, а не печать ничего, ничего. Похоже, он никогда не начинается. Вид вроде следующего:
me:/srv/scripts# php -f my_script.php myArguments
me:/srv/scripts#
Другие скрипты будут работать отлично.
Мне сложно придумать SSCCE, так как я не могу поделиться кодом, который вызывает это, и я не смог воспроизвести это поведение намеренно. Я, однако, видел это дважды сейчас. Если я сохраню свои изменения, верните файл и вставьте их обратно, есть вероятность, что он будет работать нормально.
Однако меня беспокоит не зная, что вызывает это странное поведение. Есть ли пробельный символ или что-то, что говорит PHP не запускать или ничего выводить?
Вот что я пробовал, увидев это поведение:
-
Модификация script, поэтому это простой
echo 'hello'
-
Ввод бессмыслицы в начале script, поэтому он не поддается анализу.
-
Вставка кода из рабочего script
-
В отчаянии ударяя головой о стену
-
Попробуйте его в другом соединении ssh терминала /putty.
Здесь, где он становится интересным: он фактически работает в другом терминале. Он делает все, как ожидалось.
У кого-нибудь есть идеи, что может быть причиной этого, или вещи, которые я должен попробовать, чтобы определить проблему?
EDIT:
"Другой терминал" все еще является терминальным приложением, просто новым.
У меня есть достаточные права для выполнения файла, но даже если я этого не сделал, он должен выплюнуть сообщение, которое я не знаю.
Я намеренно ввел синтаксические ошибки в надежде, что я получу PHP, чтобы выплюнуть ошибку синтаксического анализа. Не было выхода.