Чи є спосіб перенаправити вихідний файл nohup на файл журналу, відмінний від nohup.out?


112

Я часто використовую програму, nohupщоб мої процеси були несприйнятливими до зависань. Отже, якщо я хочу зробити програму programнепридатною до зависань, я використовую команду

nohup program &

де &ставиться процес на другий план.

Під час запуску nohupпередає мені повідомлення:

nohup: додавання виводу до `nohup.out '

Чи є якийсь спосіб надіслати вихідний файл, крім іншого nohup.out? Часто я хочу запускати багато процесів в одному каталозі за допомогою nohup, але якщо я це роблю, весь вихід збирається в один nohup.outфайл.

Сторінка керівництва (наприклад, тут ), схоже, не має можливості вказувати файл журналу. Чи можете ви підтвердити це? Також у вас є думки, як я можу вирішити цю проблему?


3
Запізнився на рік, але тут було дано хорошу вичерпну відповідь: stackoverflow.com/questions/4549489/…
Рахул Джа

Відповіді:


132

nohupСторінка людини GNU coreutils вказує, що ви можете використовувати звичайне перенаправлення:

Якщо стандартним входом є термінал, перенаправляйте його з / dev / null. Якщо стандартний вихід є терміналом, додайте висновок до 'nohup.out', якщо можливо, '$ HOME / nohup.out' в іншому випадку. Якщо стандартна помилка є терміналом, перенаправляйте її на стандартний вихід. Щоб зберегти вихід у FILE, використовуйте "nohup COMMAND> FILE".

Редагувати: я спочатку не читав ваше посилання; у вас може бути інша версія nohup, хоча цей розділ говорить про те, що ви все ще можете використовувати звичайне перенаправлення:

 nohup.out          The output file of the nohup execution if
                    standard  output is a terminal and if the
                    current directory is writable.

Ви можете перенаправити стандартний вихід і стандартну помилку на різні файли:

nohup myprogram > myprogram.out 2> myprogram.err

або до того ж файлу:

nohup myprogram > myprogram.out 2>&1

54
Щоб відповісти конкретно: використовуйте nohup program > program.out &для написання висновку program.outзамістьnohup.out
Jim Paris

4
І це не характерно для утиліт GNU, поведінку визначає POSIX.
Жиль

3
Це, здається, не працює. Він перенаправляє вихід команди nohup, а не вихід моєї програми.
Кріс

2
Перенаправлення @Kris повинно відбутися до того, як &
переслідує
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.