1
#!/bin/bash
python /home/sites/myapp/Main.py &> /home/sites/myapp/logs/init.log &

このスクリプトは、約 1G/週のログを生成します。
実行時に init.log を手動で削除し、スクリプトを再起動しないと、欠落している init.log にデータが保存されます。スクリプトを再起動すると、init.log が再び表示されます。

ログを表示する唯一の方法はスクリプトを再起動することですか?

4

2 に答える 2

2

何も参照されない限り、ファイルは実際には削除されません。この場合、すべてのディレクトリ エントリを削除しましたが、プログラムにはまだ開いているファイル記述子があるため、プログラムが終了するまでデータは完全に削除されません。また、ディスク領域を占有し続けることに注意してください。

Linuxでは、/proc/PID/fd/FDPIDがプロセスのIDで、FDが関心のあるファイル記述子であるファイルの内容を引き続き表示できます。プログラムが終了すると、データはトーストされ、ディスクスペースを再利用できます...だから取得しますできる限りあなたのデータ;)

プログラムがまだ開いているファイル記述子を持っていることがわかっている場合は、ログ ファイルを削除しないでください。代わりに、cat /dev/null > log.fileまたは bash でファイルを切り捨てます> log.file

于 2013-08-19T09:05:11.527 に答える