Ubuntu 14.04 服务日志文件已删除,日志未写入新文件

Ubuntu 14.04 服务日志文件已删除,日志未写入新文件

/etc/sv/<service>/log/current在该服务运行时删除了文件,并希望获得一组干净的日志。但是,当我这样做时sudo service <service> restart,我发现current文件没有重新创建,我找不到新日志要存放到哪里。然后我尝试自己创建文件,甚至给了最宽松的写入权限,但发现文件仍然没有被写入。这是ls -la这个目录(在我创建文件之后current):

-rwxr--r-- 1 root root   92989 Sep 26 18:08 @400000005d8cfea82484f9e4.s
-rwxr--r-- 1 root root  353827 Sep 26 19:08 @400000005d8d0cb826d2f50c.s
-rwxr--r-- 1 root root  272084 Sep 26 19:45 @400000005d8d1ac8286c4a1c.s
-rwxr--r-- 1 root root  332117 Sep 26 21:00 @400000005d8d28d82f65f304.s
-rwxr--r-- 1 root root 1678531 Sep 26 22:08 @400000005d8d36e8308de4bc.s
-rwxr--r-- 1 root root 2143833 Sep 26 23:08 @400000005d8d44f831d170dc.s
-rwxr--r-- 1 root root 1549498 Sep 27 00:08 @400000005d8d5308332767d4.s
-rw-r--r-- 1 root root      33 Jan 31  2019 config
-rwxrwxrwx 1 root root       0 Sep 27 00:43 current
-rw------- 1 root root       0 Jan 31  2019 lock
drwxr-xr-x 2 root root    4096 Jan 31  2019 main
-rwxr-xr-x 1 root root      40 Jan 31  2019 run
drwx------ 2 root root    4096 Feb 21  2019 supervise

我该怎么做才能恢复current日志并重新启动此服务上的日志轮换?

ps auxf给我这一行看起来很有趣的内容:

root      1269  0.0  0.0    176    44 ?        Ss   Feb21   0:17  \_ runsv <service>
root      1272  0.0  0.0    200    56 ?        S    Feb21  15:41  |   \_ svlogd -b 2048 -l 2000 .
root     29245  0.0  3.9 503232 299256 ?       Sl   00:55   0:22  |   \_ /usr/bin/python3 <some service>

我可以在这里看到日志子服务,但我不确定可以使用什么命令来重新启动该子服务本身。

答案1

日志文件(通常)由子服务而不是主服务写入log。您需要重新启动log子服务,以便它关闭正在写入的文件并重新打开它。

相关内容