我可以通过c程序与open vt进行交互吗?

时间:2014-09-12 13:49:07

标签: c linux bash

假设我有一个以root身份启动的状态机来运行一个且在给定的保留vt中只有一个程序。我使用的第一个电话是:

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

找到所有子节点的PID(shell脚本,调用等)的唯一方法是搜索ps aux以获取在该vt(tty12)上生成的PID并杀死它们,因为只有fork保持openvt命令的PID在新的vt打开后几乎死掉了吗? 或者是否有一种灵活的方式将SIGINT发送到已知的vt(即/ dev / vcs12 dev / tty12)?

1 个答案:

答案 0 :(得分:1)

ps的-t tty选项可能就是你要找的......

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

或者,以特定于sh / bash的方式:

kill -INT $(ps -t vcs12 -o pid=)