2013-03-07 4 views
-1

Итак, у меня есть сценарий запуска, который, предположим, запускает этот сценарий python в фоновом режиме, используя nohup. И я использую nohup, потому что я не хочу, чтобы это зависело от того, вошел ли я в систему или нет. Таким образом, он работает с SD-картой, после чего я превратился в изображение и сжег на другую карту.Команда Linux nohup не работает правильно

Странно, что он работает правильно в первом, а не во втором. Я могу посмотреть nohub.out в первом и увидеть ожидаемый результат, но в копии он полностью пуст.

Когда я делаю ps aux | grep python Я вижу, как работает сценарий, и поэтому я не уверен, почему копия не работает так, как предполагается,

+0

Используете ли вы файловую систему на основе '* nix' на новой SD-карте? И также было бы хорошо рассказать нам, как вы создали изображение и перенесли его на вторую SD-карту? Могут быть некоторые несоответствия из-за того, как вы тоже перевели. – Tuxdude

ответ

0

Я понял. По-видимому, все они должны были быть заблокированы по какой-то причине. Когда я это сделал, они работали как ожидалось

2

Без полного контекста трудно догадаться, но разница может быть просто из-за того, что одна из SD-карт защищена от записи - или установлена ​​только для чтения. Если это не так, можете ли вы отправить вывод

mount 

с обеих сторон?

Вы можете использовать screen вместо nohup: начать

screen 

Затем запустите программу обычно, а затем снять, нажав Ctrl + A, затем D. Возвратить управление терминалом позже (даже после выхода из системы) с

screen -r 
+0

Я знаю, что он не защищен от записи, потому что я редактировал сценарий с разными предложениями (хотя никто не работал). Я попробую экран, но я предполагаю, что останавливается, когда устройство отключено. –

+0

Что касается полного контекста, то SD-карта находится в малине pi, и ее просто предположим, что она запускает скрипт python в фон, когда устройство включено. –

+0

Для меня «экран» является лучшим «nohup» (хотя, по общему признанию, «nohup» упрощает получение полного журнала, но в этом случае вы можете просто вывести вывод на 'tee'). Но это не мешает программе умирать, если компьютер выключен ... Если вы хотите, чтобы сценарий всегда запускался, вы должны предоставить сценарий запуска для него в '/ etc/init.d' (или любой каталог, который использует ваш дистрибутив) и иметь ссылку для запуска в соответствующем '/ etc/rc.? d', или просто добавить его в'/etc/rc.local'. –

Смежные вопросы