Где STDOUT отрицаемой программы направлен к?

Как продолжение этого вопроса, я хотел бы знать, где STDOUT и STDERR программы, на которой я работал disown -h перенаправляется к.

11
задан 20.03.2017, 12:17

1 ответ

disown не изменяет программы STDOUT/ERR. Они все еще перейдут в то, везде, где Вы перенаправили их (использование > и т.д.). Если Вы не перенаправили их, они продолжат входить в терминал, Вы запустили программу от (пока Вы не закроете тот терминал, в этом случае они будут отброшены).

Для иллюстрирования выполните это в терминале:

bash -c 'while true; do sleep 1; echo hi; done' &

Это будет печатать "привет" каждую секунду (и раздражать Вас ужасно ;-)). Если Вы disown программа после запускается, "привет" s только продолжится. Необходимо найти PID оболочки (использование, например, PS) и уничтожить его, чтобы заставить его остановиться.

Править:

На основе комментариев возможно, то, что Вы действительно хотите сделать, должно восстановить вывод программы после Вас disownредактор это и закрытый терминал это работало в. Это объяснено в этом вопросе: после совершения удаленный nohup с tcsh (благодаря шарлатану quixote).

10
ответ дан 07.12.2019, 12:25

Теги

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