进程暂停,但与本地系统中文件的连接未终止

进程暂停,但与本地系统中文件的连接未终止

我不确定这是否是正确的地方,但是因为这是一个需要解决的问题,所以我在这里发布。

我用过

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 在程序中并重新打开日志,然后继续调整。

相关内容