заставить nohup игнорировать › и ‹

Итак, я запускаю систему машинного перевода Моисея на своем сервере. Я получаю доступ к терминалу по ssh и столкнулся с интересной проблемой.

Сценарий, который я запускаю, использует > для указания и вывода файла, и он выглядит так:

~/mosesdecoder/bin/moses -f /home/tin/working/filtered/moses.ini -i /home/tin/working/filtered/input.29242 > final

Теперь, поскольку для завершения перевода потребуется некоторое время (около 10 часов), я хочу, чтобы он работал с nohup, но когда я это сделаю, даже если я поставлю & в конце, я получаю файл с именем «final», заполненный стандартный материал.

Любая идея о том, как этого избежать ??


person Lurker    schedule 03.10.2014    source источник
comment
ln -s /dev/null final перед бегом? Это отбросит вывод; Я не совсем уверен, что это то, что вам нужно. Предполагая, что перенаправления находятся в скрипте, который вы запускаете с помощью nohup - nohup даже не обрабатывает их, он просто защищает оболочку, которая запускает скрипт, от завершения SIGHUP.   -  person greggo    schedule 04.10.2014


Ответы (1)


Если вы запускаете команды внутри реального файла сценария, вы можете избавиться от > внутри сценария и запустить nohup ./sciptname.sh.

Это напечатает вывод скрипта на терминал, но nohup перенаправит его на «nohup.out» в текущем каталоге.

Источник:

Согласно справочной странице nohup, которую я читаю, If the standard output is a terminal, the standard output is appended to the file nohup.out in the current directory.

Дать ему шанс :)

person Travis    schedule 05.10.2014