2014-09-12 54 views
0

假設我有一個以root身份啓動的狀態機在一個給定的保留vt中運行一個且只有一個程序。我使用類似的第一次調用:我可以通過c程序與打開的vt進行交互嗎?

execl("/usr/bin/openvt", "/usr/bin/openvt", "-c 12", "-f", "-- su auser /home/auser/sbin/ascript.sh", (char *) 0); 

是找到所有的孩子的PID的(shell腳本,調用等)來搜索的ps aux的PID的那些上產生的唯一途徑vt(tty12)並殺死它們,因爲fork只會保存openvt命令的PID,在新的vt打開後它幾乎死亡? 還是有一種方法可以將SIGINT發送到已知的vt(即/ dev/vcs12 dev/tty12)?

+0

'-w等待命令完成。「這對您有幫助嗎?也許看到這個問題也是:http://stackoverflow.com/questions/2195885/how-to-send-ctrl-c-control-character-or-terminal-hangup-message-to-child-process – 2014-09-12 14:07:57

回答

1

-t tty選項ps的可能是你在找什麼...

kill -INT `ps -t vcs12 -o pid=` 

,或者在SH/bash的特定路:

kill -INT $(ps -t vcs12 -o pid=) 
相關問題