отправка сигнала в фоновый процесс - PullRequest
2 голосов
/ 04 декабря 2009

Какой сигнал я должен отправить фоновому процессу, чтобы переместить его на передний план? SIGTTIN, SIGTOU или ...?

Ответы [ 4 ]

17 голосов
/ 04 декабря 2009

Это не сигналы, которые напрямую управляют заданиями на переднем или на заднем плане. Задания находятся под контролем оболочки (обычно).

Например, под bash, если вы выполните:

pax> sleep 3600 &
pax> jobs

вы увидите вывод как:

[1]+  Running                 sleep 3600 &

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

pax> fg %1
sleep 3600

(и терминал ждет).

Использование CTRL Z делает отправкой сигнала процессу (SIGSTOP), а также переводом его в фоновый режим, но единственным сигналом, который может изменить это SIGCONT (продолжить):

pax> fg %1
sleep 3600
^Z
[1]+  Stopped                 sleep 3600
pax> jobs
[1]+  Stopped                 sleep 3600
pax> kill -CONT %1
pax> jobs
[1]+  Running                 sleep 3600 &

Это даст команду процессу начать работу снова, но не выведет его на передний план. Для этого вам понадобится команда fg.

Вероятно, лучше думать о сигналах (которые влияют на процесс) и переднем плане / фоне (которые влияют на оболочку, которая запустила процесс, определяя, среди прочего, ожидает ли он его).

7 голосов
/ 04 декабря 2009

gurudoglu. Я думаю, что ответ на ваш запрос здесь:

2 голосов
/ 04 декабря 2009

Нет способа (ни в одной из известных мне ОС) использовать сигнал для вывода процесса на передний план.

Я полагаю, что вы можете вывести процесс на первый план, используя fg

Передний план имеет отношение только к контексту консоли, и сигнал не может сообщить процессу, с какой консоли передний план ... ... 1006 *

1 голос
/ 04 декабря 2009

Если вы работаете в Unix и запускаете процесс из оболочки, вы можете набрать следующее

  • Остановить процесс :: ^ Z
  • Переместить процесс в фоновый режим :: bg
  • Вернитесь на передний план :: fg
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...