Как запустить скрипт bash вне терминала?

2273
sixtyfootersdude

Привет всем, написал этот сценарий, чтобы запутать мою девушку, когда она использует мой компьютер. Единственная проблема заключается в том, что если терминал закрывается, скрипт перестает выполняться. В настоящее время он выполняется в фоновом режиме, но как я могу заставить его работать в фоновом режиме, но не в терминале?

(sleep 5; say "Hello Girlfriend")& 
3
Так где вы в конечном итоге хотите показать ей сообщение? John T 14 лет назад 0
Если он не работает в терминале, как вы ожидаете увидеть вывод? pavium 14 лет назад 1
@John T and pavium: команда say в Mac OS X - это команда преобразования голоса в текст. То есть: команда прочитает текст и воспроизведет его на динамиках. sixtyfootersdude 14 лет назад 4
Я полагаю, что она запуталась, потому что там написано «девчонка» вместо «подружка»? Nathaniel 14 лет назад 0
На самом деле, я * заметил * слово «сказать», но я не был человеком Mac, который мне не понравился. Во всяком случае, я мог подумать о функции `say` в Perl 5.10 pavium 14 лет назад 0

5 ответов на вопрос

4
Dennis Williamson

Ты пробовал nohup?

nohup command >/dev/null 2>&1 & 
2
dmckee

Я обещаю, что независимо от того, как сильно вы ей нравитесь, 5 секунд - слишком быстрый интервал. В самом деле.

nohup(и в bash disown) позволит вам отсоединить процесс от инициирующего терминала.

1
John T

Вы можете запланировать его запуск в определенное время в фоновом режиме atили cronв фоновом режиме.

0
AxeZ

Вы можете приостановить выполнение с помощью Ctrl-Z и затем запустить его в фоновом режиме с помощью bg (background).

Если вы хотите показать это, тогда fg или%.

0
akira

использовать atили, cronкак предложил Джон, а затем использовать, wallчтобы отправить ей сообщение на ее терминал.

Похожие вопросы