我希望 picocom 在远程计算机上记录串行数据,而不必保持与远程计算机的 ssh 会话处于活动状态。
我努力了:
picocom <my options>
当我注销时,它就死了。
picocom <my options> &
picocom
终端上没有输出,并且退出C-a C-x
会使工作停止,它不会杀死它(我需要kill -9
,一个简单kill
的工作不起作用。然后我必须手动清理 tty 锁定/var/lock/
)。
picocom <my options> > tmp/data.log&
然后在另一个 ssh 会话中:
tail -f tmp/data.log
文件中没有数据出来data.log
。
bash -c "picocom --baud 115200 /dev/ttyACM1 > /home/pi/tmp/data.log" &
也没有输出到文件。作业立即“停止”。
nohup sh -c "picocom --baud 115200 /dev/ttyACM1 > /home/pi/tmp/data.log" &
我在尾文件中获得了开始输出picocom
,但随后退出了作业。
也很高兴知道:picocom
不会对C-z
.
我的问题是:
- 是否有可能
picocom
在后台运行? - 有哪些替代方法可以在没有打开会话的情况下记录串行终端?
另一种方法是使用设置设备,
stty
然后使用 cat 读取它:我建议使用dtach。dtach 允许您在后台运行程序。我已经成功地将它与 picocom 一起使用来进行串行日志记录,而无需打开会话(在远程 Raspberry Pi 上)。
我还建议使用 picocom 的内置日志记录
-g
将串行数据保存到文件中。安装 dtach 后,您可以使用 picocom 运行它;
dtach -A /tmp/dtach picocom --baud 115200 /dev/ttyACM1 -g /home/pi/tmp/data.log
然后一旦 picocom 运行,您可以将其置于后台
C-\
重新加入“dtached”过程使用;
dtach -a /tmp/dtach
我发现 picocom 确实在后台写入日志文件,所以我可以
cat /home/pi/tmp/data.log
在 picocom 仍在运行但“dtached”的情况下假设用户会话的意思是,您可以使用将命令发送到正在运行的屏幕会话
screen
的选项和将击键发送到当前窗口的命令。-X
stuff
请注意将引号放在周围和下一行,以便执行命令。*
...还没有检查是否
bash -c
或tmux
是否可能。