отправка сигнала в фоновый процесс

Какой сигнал я должен отправить в фоновый процесс, чтобы переместить его на передний план? СИГТТИН, СИГТОУ или …?

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

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

Например, при 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 .

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

Нет никакого способа (в любой OS, о котором я знаю еще) использовать сигнал, чтобы перенести процесс на передний план.

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

Передний план применим только в контексте консоли, и сигнал не может сообщить процессу, что консоль на переднем плане, чтобы …

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

  • Остановить процесс :: ^ Z
  • Переместить процесс в фоновый режим :: bg
  • Вернуться на передний план :: fg