Background-Process
在沒有打開會話的情況下在後台執行 picocom
我希望 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 讀取它:stty <my options> nohup sh -c "cat /dev/ttyACM0 > data.log" &
我建議使用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”的情況下