Background-Process

在沒有打開會話的情況下在後台執行 picocom

  • June 22, 2021

我希望 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”的情況下

引用自:https://unix.stackexchange.com/questions/420953