оболочка: как сделать хвост файла запущенным в фоновом режиме - PullRequest
4 голосов
/ 15 июля 2011

Я хочу запустить несколько задач в оболочке.

  1. привязать файл к новому файлу: например: tail -f debug|tee -a test.log
  2. одновременно, запустить другие задачи,

Мой вопрос: как заставить команду tail -f debug|tee -a test.log работать в фоновом режиме, чтобы я мог запускать другие задачи, кроме сценария оболочки?

Ответы [ 3 ]

5 голосов
/ 15 июля 2011

Для этого вам вовсе не нужен тройник, просто используйте встроенный в оболочку оператор добавления:

tail -f debug >> test.log &

Трейлинг и работает как обычно в оболочке. Тебе нужен только тэ, чтобы отправить вывод в файл, а также стандартный вывод, который, если он у вас есть в фоновом режиме, вероятно, не тот, который вы хотите.

4 голосов
/ 15 июля 2011

Обычно вы просто используете амперсанд после команды, если хотите что-то сделать фоновым.

tail -f debug|tee -a test.log &

Затем вы можете вернуть его на передний план позже, набрав fg. Это ответило на ваш вопрос или я пропустил то, что вы спрашивали?

1 голос
/ 15 июля 2011

Простой способ сделать это:

screen -R -D
tail -f debug|tee -a test.log
Ctrl-A c
ps ax |grep tail
Ctrl-A [Backspace]
...
Ctrl-A [Spacebar]

screen позволяет запускать несколько сеансов терминала на одном терминальном соединении. Вы переключаетесь назад и вперед с помощью Ctrl-A [Backspace] | [Space]. Для создания еще одной отдельной оболочки Ctrl-A c

Основным преимуществом экрана является то, что если сеанс терминала отключается, он сохраняет все в рабочем состоянии. Просто закройте окно терминала или отключите ssh, перейдите на другой компьютер, войдите в систему и запустите screen -R -D, чтобы повторно подключиться ко всему, что еще работает.

Если вам это нужно только изредка, просто запустите tail, введите Ctrl-Z, введите команду, затем fg %1, чтобы вернуть хвостовой процесс на передний план, или bg %1, чтобы он постоянно работал в фоновом режиме. Если вы используете Ctrl-Z, то команда jobs показывает все ваши отдельные задания.

...