К моему пониманию, в/lib/lsb/init.functions, log_failure_msg
надлежащий путь состоит в том, чтобы произвести сообщение об отказе к некоторому файлу журнала. Я задавался вопросом, было ли возможно сделать это.
python some/script/here.py 2>> log_failure_msg
log_failure_msg обычно используется как так log_failure_msg "some failure message"
У меня есть свои сомнения, что это не работало бы, как я надеюсь с stderr, быть сообщением передало log_failure_msg. Я проверил бы это, но я также не уверен, куда этот недавно созданный файл журнала помещается. Если кто-либо мог бы помочь или предложить альтернативу тому, как зарегистрировать мою ошибку с log_failure_msg затем, я буду большой ценить его.
Еще одна вещь. Прямо после моей строки Python, я имею retval=$?
. Мне нужна эта строка для права после моей команды Python, таким образом, я могу получить код возврата. Я не мог думать так или иначе, чтобы захватить stderr и присвоить его переменной, которую я мог передать log_failur_msg из-за этого.
Спасибо
Если вы проверите спецификацию log_failure_msg , он говорит:
log_failure_msg message
The log_failure_msg function shall cause the system to write a failure
message to an unspecified log file. The format of the message is
unspecified.The log_failure_msg function may also write a message to the
standard output.
Note: The message should be relatively short; no more than 60 characters
is highly desirable.
Таким образом, похоже, что функция записывает только в standard output
, а не standard error
. Это способ, которым 2> somewhere
не будет работать.
С другой стороны, если вы хотите, чтобы скрипт Python записывал в stderr
, этот пост расскажет вам, как это сделать. log_failure_msg
предназначен только для сценариев оболочки и обычно имеет источник:
#!/bin/bash
source /lib/lsb/init-functions
log_failure_msg "some error"
Объединение отчетов об ошибках Python и Shell не выглядит хорошей идеей.