[英]sending a signal to a background process
我應該將哪個信號發送到后台進程以將其移至前台? SIGTTIN,SIGTOU還是......?
這不是直接控制作業是前景還是背景的信號。 這些工作都在shell(通常)的控制之下。
例如,在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
命令。
最好分別考慮信號(影響過程)和前景/后台(它通過確定是否等待它來影響啟動過程的shell)。
gurudoglu。 我認為您的請求的回復在這里:
沒有辦法(在我知道的任何操作系統中)使用信號將進程帶到前台。
我相信你只能使用fg
將進程帶到前台
Foreground僅在控制台的上下文中相關,並且信號無法告訴進程前台的控制台是什么...
假設您在Unix上並從shell啟動該過程,您可以鍵入以下內容
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.