我有一個是有它的stdout被重定向到一個日誌文件中的節點應用:有STDOUT截斷文件被重定向到它
node app.js > /var/log/app.out
從我的節點計劃裏面我想日誌中,以便重置防止它變得太大。我以重置它的長度試圖fs.truncate
和fs.open('/var/log/app.out', 'w')
,但是當我嘗試使用ls
或stat
驗證文件大小,文件大小似乎很快就重置爲0,然後恢復到它的原來的尺寸再加上新的信息(我目前我迫使大量的輸出)。
[email protected]:/var/log# stat app.out
File: ‘app.out’
Size: 5885622 Blocks: 16 IO Block: 4096 regular file
Device: fc00h/64512d Inode: 270560 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2013-09-26 17:20:06.784564421 -0600
Modify: 2013-09-26 17:20:49.088565625 -0600
Change: 2013-09-26 17:20:49.088565625 -0600
Birth: -
[email protected]:/var/log# stat app.out
File: ‘app.out’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fc00h/64512d Inode: 270560 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2013-09-26 17:20:06.784564421 -0600
Modify: 2013-09-26 17:20:51.772565702 -0600
Change: 2013-09-26 17:20:51.772565702 -0600
Birth: -
[email protected]:/var/log# stat app.out
File: ‘app.out’
Size: 6038458 Blocks: 16 IO Block: 4096 regular file
Device: fc00h/64512d Inode: 270560 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2013-09-26 17:20:06.784564421 -0600
Modify: 2013-09-26 17:20:53.640565755 -0600
Change: 2013-09-26 17:20:53.640565755 -0600
Birth: -
看來,stdout是重寫它的緩衝區裏的文件(不管緩衝區有多大)。
我怎樣才能截斷STDOUT正在被重定向到一個文件,而不會破壞我的節點的應用程序嗎?