Куди спрямовано STDOUT відмовленої програми?


Відповіді:


10

disownне змінює програми STDOUT / ERR. Вони все одно перейдуть туди, куди ви їх перенаправили (використовуючи >тощо). Якщо ви не перенаправили їх, вони продовжуватимуть заходити в термінал, з якого ви запустили програму (поки ви не закриєте цей термінал, і в такому випадку вони будуть відкинуті).

Для ілюстрації запустіть це в терміналі:

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

Це надрукує "привіт" щосекунди (і вас страшенно дратує ;-)). Якщо ви disownпрограму після запуску, "привіт" просто продовжиться. Вам потрібно знайти PID оболонки (використовуючи, наприклад, ps) і вбити її, щоб вона зупинилася.

Редагувати:

Виходячи з коментарів, можливо, те, що ви дійсно хочете зробити, це відновити вихід програми після того, як ви disownїї відредагували та закрили термінал, в якому вона працює. Це пояснюється в цьому питанні: Віддалений нохуп після факту з tcsh ( завдяки шарлатанському кіхоту).


Згідно з його попереднім питанням, факт полягає в тому, що він закрив цей попередній термінал. Як він може отримати вихід?
Gnoupi

@Gnoupi: Я не думаю, що існує спосіб повернути результат. Принаймні я жодного разу не чув.
sleske

Дякую за коментар Gnoupi :-) Фактично, результатів ніде не знайти. Я продовжую шукати, хоча :-)
Thrawn

1
це справді відповідь: відмова не змінює нічого; вам потрібно налаштувати будь-яке захоплення чи переадресацію під час запуску процесу . якщо вам це потрібно після цього, gdb є вашим (єдиним) другом: superuser.com/questions/50058/…
quack quixote

@quack - Я б сказав, що питання потребує рефакторингу, а потім, щоб наголосити на фактичному випадку використання, а не лише на інструменті. У нинішній формі (з урахуванням відмови) це справді правильна відповідь. Але з контексту, з попереднього питання, користувач хоче просто відновити результат, і в цьому випадку ваше посилання є відповіддю.
Gnoupi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.