Я хотел бы иметь возможность запускать задачи в фоновом режиме оболочки и не отображать их вывод в stdout или stderr, закрывающие командную строку внизу. Часто мне нужно запускать другие команды для взаимодействия с фоновыми процессами, и я хотел бы делать это из той же оболочки, не открывая другой терминал или не используя мультиплексор для разделения терминала, например экрана.
В идеале должен быть какой-то параметр, о котором я просто не знаю (я обычно использую bash или ksh), но мне подойдет новая или другая оболочка или сценарий.
Я открыт для любых предложений и ценю любую помощь, спасибо.
Изменить: спасибо за все ваши ответы, но мой вопрос был немного неясным. Мне все еще нужно следить за выходом фоновых задач по мере их появления, я просто хотел бы, чтобы это не касалось каких-либо новых команд, которые я мог бы вводить в командной строке. В идеале выходные данные фоновых программ должны отображаться во всех строках оболочки, кроме нижней, что дает мне возможность создавать новые команды в этой строке.
Это было бы похоже на рабочий экран с горизонтальным разделением, где нижнее окно было всего 1-2 строки в высоту, но использование screen имеет следующие недостатки для моих целей:
Еще раз спасибо за вашу помощь, это был мой первый вопрос, и я был поражен скоростью и количеством ответов!
В Bash & ksh вы можете удалить весь стандартный вывод, добавив 1>/dev/null
к команде.
Для csh и tcsh это $1>/dev/null
mycommand > /dev/null 2>&1
Это перенаправит stderr (2) на stdout (1) на / dev / null
Со страницы википедии nohup, чтобы расширить уже предоставленные ответы ....
nohup ./myprogram > foo.out 2> foo.err < /dev/null &
http://en.wikipedia.org/wiki/Nohup
nohup позволяет продолжить процесс после завершения работы оболочки, если вам это необходимо. '>' И '<' перенаправляют вывод в 'файл', каким бы он ни был. В некоторых из приведенных примеров этот файл просто / dev / null. '&' Сообщает оболочке, чтобы она поместила процесс в фоновый режим и продолжала принимать ввод, поскольку OP, вероятно, уже знает.
В зависимости от того, насколько жестко ваш системный администратор следит за своей безопасностью, вы можете запустить команду, используя "at".
$ at now
date
id
^D
$
Конечно, результат (если есть) будет отправлен вам по электронной почте.