2016-07-25 10 views
0

Я успешно добавил запись для stdout/stderr вывода программы в файл.Журнал stdout & stderr при запуске программы на экране

Но когда я начинаю программу из screen журнального файла пуст, потому что он только регистрирует сообщения от screen, а не из программы, работающей в фоновом режиме в screen.

Любой способ исправить это или другие решения, пожалуйста, чтобы я мог запускать съемную программу с протоколом stdout/stderr, аналогичным screen?

текущей строки запуска:

экран -A -m -d -S тест ./testserver -config = config.cfg -filepatching -autoinit 1 >>»./ войти _ $ (дата +% s). txt "2 >>" ./ log_ $ (date +% s) .txt "

+0

Может быть, вы могли бы добавить некоторую информацию или код, как вы делаете это прямо сейчас. В противном случае почти невозможно догадаться, что случилось. – nidomiro

+0

добавлен автозапуск – Daniel

ответ

1

Проблема в том, что вам необходимо инкапсулировать свою команду. Прямо сейчас 1>>"./log_$(date +%s).txt" 2>>"./log_$(date +%s).txt" применяется к самому экрану, без выполнения программы.

Попробуйте вместо этого:

screen -A -m -d -S test './testserver -config=config.cfg -filepatching -autoinit 1>>"./log_$(date +%s).txt" 2>>"./log_$(date +%s).txt"' 

Или это:

screen -A -m -d -S test /bin/sh -c './testserver -config=config.cfg -filepatching -autoinit 1>>"./log_$(date +%s).txt" 2>>"./log_$(date +%s).txt"' 
+1

большое спасибо :) – Daniel