Я использую команду $ 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
?
command-line
nohup
orschiro
источник
источник
byobu
. :)byobu
, запускаете все, что хотите, затем нажимаете,F6
и все готово. Вы можете вернуться к нему, запустивbyobu
снова.Ответы:
Вы можете перенаправить вывод куда угодно, например:
перенаправление предотвращает
nohup.out
создание выходного файла по умолчанию ./dev/null
забвение, так что если вы вообще не хотите получать данные, отправьте их туда.В Баш вы можете сократить
>/dev/null 2>&1
до&>/dev/null
Для часто используемых программ я создаю псевдоним (и добавляю его к своему
.bashrc
), напримерТеперь все, что я должен напечатать,
show_state
источник
show_state () { /bin/bash -c "$@" &>/dev/null }
? (Предупреждение: плохой синтаксис и, вероятно, не будет работать! Это просто пример!). Один придира: почему,show_state
когда вы выбрасываете выходные данныеnohup
?.py
файла. И да, функция веселее. У меня это плохо функция , написанная на столе Debian:shutup() { source "$@" >/dev/null 2>&1 & }
. И это работает. Может быть, вы могли бы предложить что-то похожее, но намного лучше?&>
сработало (и, на мой взгляд, это похоже на фон плюс перенаправление stdout). Я всегда учился этому как>&
. Это стандарт?