Як я можу запобігти створенню файлу ~ / nohup.out у файлі ~ nohup?


16

Я використовую команду $ nohup ...для запуску програми у фоновому режимі, щоб згодом закрити вікно терміналу.

Після його виконання він створює файл ~/nohup.out.

Приклад:

orschiro@x230:~$ nohup /bin/bash -c "sleep 15 && python3 /home/orschiro/bin/show_state.py"
nohup: ignoring input and appending output to 'nohup.out'

Як я можу запобігти nohupстворенню nohup.out?


2
Ви також можете розглянути byobu. :)
— Андреа Лаццаротто

Дякую, @AndreaLazzarotto! Чи можете ви надати мені приклад, як ним користуватися?
— orschiro

2
Ну, я пропоную вам подивитися тут відео: byobu.co В основному, для того, що ви хочете зробити, ви просто запустіть byobu, почніть все, що завгодно, потім натисніть F6і все буде зроблено. Ви можете повернутися до нього, запустивши byobuзнову.
— Андреа Лацаротто

Відмінно! Ви можете додати це як офіційну відповідь?
— orschiro

Технічно моя пропозиція взагалі не відповідає на ваше запитання, це лише альтернатива. : D
— Андреа Лацаротто

Відповіді:


20

Ви можете перенаправити висновок куди завгодно, наприклад:

nohup /bin/bash -c "sleep 15 && python3 /home/orschiro/bin/show_state.py" >/dev/null 2>&1

перенаправлення не дозволяє nohup.outстворювати вихідний файл за замовчуванням . /dev/nullце забуття, тому якщо ви зовсім не хочете даних, надсилайте їх туди.

У bash ви можете скоротити >/dev/null 2>&1до&>/dev/null

Для програм, якими я користуюся, часто роблю псевдонім (і додаю його до свого .bashrc), наприклад

alias show_state='nohup /bin/bash -c "sleep 15 && python3 /home/orschiro/bin/show_state.py" >/dev/null 2>&1'

Тепер все, що я маю набрати, це show_state


2
@orschiro: Через кілька років це не буде криптовалютою, і ви запам’ятаєте це;) Я пропоную дотримуватися цього, тому що його вилучення означає, що ви не отримаєте цього досвіду, і знаючи, як оператори перенаправлення BASH працюють у верхній частині вашої голови - вирішальне майстерність.
— Легкі перегони з Монікою

Хіба це не було б краще як функція? Щось на кшталт show_state () { /bin/bash -c "$@" &>/dev/null }? (Попередження: поганий синтаксис і, ймовірно, не буде працювати! Це просто приклад!). Один нитко: чому, show_stateколи ви викидаєте вихід nohup?
— Ісмаїл Мігель

Я не знаю, що робить сценарій @IsmaelMiguel, але я припускаю, що це індикатор із піктограмою лотка, а не для друку "стану" (що б він не був) для stdout. Звичайно, функція може бути веселішою, ніж псевдонім ^. ^
— Zanna

О, я зрозумів! На жаль, назву .pyфайлу не було. І так, функція веселіша. У мене це погано функція , написана на столі Debian: shutup() { source "$@" >/dev/null 2>&1 & }. І це працює. Може, ви могли б запропонувати щось подібне, але набагато краще?
— Ісмаїл Мігель

Я ніколи не знав, що це &>спрацювало (і на мій погляд, це виглядає як фон плюс перенаправлення stdout). Я завжди дізнавався це як >&. Це стандарт?
— Випадково832
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.