作者shihyuyao (shihyuyao)
看板LinuxDev
標題[問題] shell background 差異
時間Wed Oct 21 20:24:15 2015
https://gist.github.com/anonymous/f44a39855f022c280ecd
使用 sh test1.sh 後
ps aux | grep 'my_fork' // 找不到 my_fork 父跟子行程
但是改成 sh test2.sh &
ps 可以看到my_fork 父子行程
好奇為什麼把 & 寫在 test1.sh 裡面為什麼無法看到父跟子行程?
因為我my_fork 程式裡面有 getchar(); 卡住
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 112.104.88.20
※ 文章網址: https://webptt.com/m.aspx?n=bbs/LinuxDev/M.1445430260.A.07B.html
1F:推 yvb: 因為 shell script 中的 background commands, 10/21 22:42
2F:→ yvb: 其 standard input 會被指向 /dev/null . 10/21 22:43
3F:→ shihyuyao: standard input 會被指向 /dev/null會影響 my_fork程式 10/21 23:35
4F:→ shihyuyao: fork 行程出來? 10/21 23:35
5F:→ leolarrel: 不是,yvb的意思是你的重點在於 getchar(); ..... 10/22 14:30
6F:→ leolarrel: 如果你想要讓行程暫停,好讓你可以用ps aux驗證,那你可 10/22 14:32
7F:→ leolarrel: 以用sleep 或做一些無窮回圈的事情 10/22 14:33
8F:推 yvb: 意思就是, stdin 被指向 /dev/null 時, getchar() 不會卡住. 10/22 19:20
9F:→ yvb: 同樣道理, 試試看 sh test2.sh < /dev/null 10/22 19:23