最近在公司遇到一個很奇葩的問題,nodejs啟動的子進程,在運行三天左右會自動退出,沒有任何異常。最終發現是nodejs的子進程有一個屬性:
// stdout、stderr 允許的最大輸出大小(以 byte 為單位),如果超過了,子進程將被 kill 掉(發送 killSignal 值)。
// stdout、stderr 允許的最大輸出大小(以 byte 為單位),如果超過了,子進程將被 kill 掉(發送 killSignal 值)。
'maxBuffer': 200 * 1024,
因為子進程一直工作就會一直有log,當log輸出達到這個配置的大小,就會被殺掉。。。超級尷尬
解決方案:
因為不管怎么調大上限,最終還是會被填滿,最好的辦法就是將log輸出到文件,不要輸出到控制台。