我不确定这是否是正确的地方,但是因为这是一个需要解决的问题,所以我在这里发布。
我用过
kill -SIGSTOP 1234
命令暂停名为 as 的进程1234
,然后它暂停,然后我就喜欢
echo "" > mylogfile.log
现在它的大小就像这样1byte
,所以它起作用了。然后我再次启动了暂停的过程
kill -SIGCONT 1234
并给出了ls -sh
但我不知道如何mylogfile.log
显示旧大小而不是新更新的大小为 1 字节。
那么我想要实现什么?
很简单,我不想终止进程以使我的日志文件无效。当我SIGSTOP
运行进程时,我的日志文件去了0 bytes
,当我启动它时SIGCONT
,它的大小又回到了 GB,但我不想要这个 GB 大小。我想让我的日志文件0 byte only
有什么方法可以实现这个目的吗?
请帮忙,我相信这将帮助很多系统管理员。
谢谢。
答案1
SIGSTOP
在没有得到进程的知情或同意的情况下暂停进程。进程知道它要写入其打开的文件之一的下一个字节位于 GB+1。SIGSTOP/SIGCONT
不调整此位置信息。
处理这个问题的通常方法是捕捉SIGHUP
在程序中并重新打开日志,然后继续调整。