Як я можу запобігти створенню файлу ~ / 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.