我有一个expect
想在启动时运行的脚本。除其他外,它配置了一些串行端口。当我通过 systemd 运行它时,我得到:
couldn't read file "/dev/tty": no such device or address while executing exec /bin/stty -F /dev/ttyACM0 ... </dev/tty
我认为这是因为systemd
在没有控制终端的情况下将服务作为进程运行,但是有办法解决这个问题吗?被调用的脚本没有引用/dev/tty
:
stty -F /dev/ttyACM0 ...
答案1
您有两种方法来告诉stty
要配置哪个 tty,或者使用-F /dev/your_tty
,或者像 中那样重定向 stdin < /dev/your_tty
。
两者同时使用是没有意义的。< /dev/tty
最后把它去掉就可以了。
编辑
经过您的编辑:现在的问题是为什么调用首先stty
被转换为 with 。< /dev/tty