Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как в Unix отвязать один процесс от другого? 
:(
    Опции темы
erslgoeirjh
Дата 25.4.2012, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 16.12.2005

Репутация: нет
Всего: нет



Есть процесс (программа) prog1, которая выполняется в Unix и которая запускает процесс prog2, который также выполняется в Unix.
Как сделать так, чтобы у второго процесса prog2 на экране появлялось своё терминальное окно, а не использовалось терминальное окно первого процесса prog1?

PM MAIL   Вверх
Cheloveck
Дата 25.4.2012, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: 2
Всего: 32



Это тебе не Windows, тут консольные программы не открывают окон ВООБЩЕ!!!

Это сообщение отредактировал(а) Cheloveck - 25.4.2012, 16:32


--------------------
user posted image
PM Jabber   Вверх
ZeeLax
Дата 25.4.2012, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 4388
Регистрация: 20.8.2006
Где: Алма-Ата

Репутация: 26
Всего: 88



Вам нужна программа в отдельном окне ради окна или что-то другое? Родителя сменить, например?


--------------------
Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none.
— Doug Larson
PM MAIL WWW ICQ Skype Jabber   Вверх
bilbobagginz
Дата 25.4.2012, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 113
Всего: 317



вам батенька срочно надо почитать книжку Мориса Баха о структуре ОС, процесса, файловых дескрипторах, терминалах и т.д.


--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
bems
Дата 25.4.2012, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 1
Всего: 88



Цитата(Cheloveck @  25.4.2012,  16:31 Найти цитируемый пост)
Это тебе не Windows, тут консольные программы не открывают окон ВООБЩЕ!!!
в винде они тоже этого не делают



--------------------
Обижено школьников: 8
PM MAIL   Вверх
Фантом
Дата 26.4.2012, 01:25 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 10
Всего: 49



Цитата(erslgoeirjh @  25.4.2012,  16:01 Найти цитируемый пост)
Как сделать так, чтобы у второго процесса prog2 на экране появлялось своё терминальное окно, а не использовалось терминальное окно первого процесса prog1?

Терминальное окно - это не свойство процесса, а отдельный самостоятельный процесс. Соответственно, чтобы окно появилось, его попросту надо явно запустить, засунув последующий запуск prog2 в соответствующую команду в качестве аргумента. Какого конкретно - смотрите сами в мануале, эмуляторов терминала в UNIX весьма много, и никто не будет угадывать, каким из них Вы пользуетесь.

Это сообщение отредактировал(а) Фантом - 26.4.2012, 01:26
PM   Вверх
Cheloveck
Дата 26.4.2012, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: 2
Всего: 32



Цитата(bems @  25.4.2012,  23:02 Найти цитируемый пост)
в винде они тоже этого не делают

Если запускать процесс, к примеру, ShellExecute'ом, то каждое приложение будет иметь по одному терминальному окну. CreateProcess сделает то же самое, если не передать stdin и stdout новому процессу.


--------------------
user posted image
PM Jabber   Вверх
bems
Дата 26.4.2012, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 1
Всего: 88



Нет. Во-первых консоли в наследуются, если при создании дочернего процесса не указано явно что нужно что-то другое. Во-вторых программы как правило не имеют дела с консолями как окнами. Они просто пишут в "файловый" хендл выходного буфера консоли, а окнами рулит сервер подсистемы


--------------------
Обижено школьников: 8
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
nerezus

В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
Например вопросы о выборе ОС для определенных задач (но если Вы просто хотите узнать "Какой дистрибутив лучше", то для этого есть Клуб юнуксоидов).
Общие вопросы по shell-программированию тоже лучше задавать здесь.


  • Вопросы мобильной разработки тут
  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0622 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.