[Linux/Qnx] 遇到一個問題 Stopped (tty input)
阿新 • • 發佈:2017-09-21
lin body con 有關 linux 由於 func span emp
想讓發送數據的進程在後臺運行,但是一啟動該進程就出現這個問題。
一般這個問題可能和以下原因有關:
"[1] + Stopped (tty input)", 是指程序試圖從控制終端讀, 但是由於在後臺運行, 受到SIGTTIN信號而被停止:
man signal有下面的輸出:
21 SIGTTIN stop process background read attempted from control terminal
下面的程序演示了這種情況:
void sig_ttin(int signum) { (void)printf("%s: SIGTTIN caught.n", __func__); signal(SIGTTIN, SIG_DFL); }int main(void) { int n; signal(SIGTTIN, sig_ttin); scanf("%d", &n); return 0; }
但是我猜測可能是因為該進程要從串口讀取數據,而此串口就是與調試終端連接的串口,所以此進程與終端(tty)因此關聯起來,屬於前臺進程組。
因為測試發現即使在向stdout發送字符,也可以把進程放到後臺,只要不打開串口。
相關的東東:
linux/qnx command : jobs, fg, nohup
[Linux/Qnx] 遇到一個問題 Stopped (tty input)