Ctrl-C不适用于pppd非分离会话

Modified on: Sat, 30 Jun 2018 05:27:00 +0800

我有一个Mini2440 ARM板,我已经使用multistrap在其上放置了一个基础Debian 6.0系统。

我使用tmux/etc/rc.local的不同窗口中运行多个进程。我使用其串行端口和inittab条目连接到该板,以在该端口上运行getty。我使用picocom作为串行通信器。

当root登录时,~/.bashrc将他附加到已经运行的tmux服务器,并且可以轻松监视进程。实际命令是exec tmux attach-session -t "main"。 tmux使用默认配置运行。

一切正常,除了其中一个进程(围绕pppd的shell脚本)没有从终端接收 Ctrl c ,而其他进程做。此外 Ctrl \ 有效。 kill -INT <pppd_pid>有效,但kill -INT <shellscript_pid>没有。

我真的需要 Ctrl c 才能工作。这个设置有什么问题?

编辑:
这是shell脚本中stty -a的输出,就在pppd之前:

speed 38400 baud; rows 23; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

因为它只是pppd进程有这个问题,我认为它与它或它的配置有关,但当我在tmux之外运行pppd时,Ctrl -C工作。 pppd使用nodetach选项运行,因此它保留在终端前台。

我也在我的开发机器(amd64上的debian 6.0)上测试了它,结果相同。

作者:,zaadeh

最佳答案

原来这是在发行版中使用的pppd的特定版本中的一个错误。我检查了pppd的上一个版本和更高版本没有这个问题。此问题并非特定于此arch和platform或tmux。如果在shell脚本中运行pppd,它不会处理Ctrl-C,而在shell外部,它没有问题。

作者:zaadeh

相关问答

添加新评论