Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Recursion 使用systemd path unit监视树并将参数传递给服务_Recursion_Path_Systemd_Subdirectory - Fatal编程技术网

Recursion 使用systemd path unit监视树并将参数传递给服务

Recursion 使用systemd path unit监视树并将参数传递给服务,recursion,path,systemd,subdirectory,Recursion,Path,Systemd,Subdirectory,使用systemd路径单元,是否可以监视,而不仅仅是单个目录或文件,而是递归地监视目录中的所有子目录,而不显式地列出每个子目录?我试过通配符,但即使文档提到了通配符扩展,它们也不起作用。我发现,路径单位的价值非常有限 mysolution.path [Unit] Description="File monitor path unit" [Path] DirectoryNotEmpty=/var/opt/mysolution #DirectoryNotEmpty=/var/opt/mysolut

使用systemd路径单元,是否可以监视,而不仅仅是单个目录或文件,而是递归地监视目录中的所有子目录,而不显式地列出每个子目录?我试过通配符,但即使文档提到了通配符扩展,它们也不起作用。我发现,路径单位的价值非常有限

mysolution.path

[Unit]
Description="File monitor path unit"

[Path]
DirectoryNotEmpty=/var/opt/mysolution
#DirectoryNotEmpty=/var/opt/mysolution/*
#PathChanged=/var/opt/mysolution/*/*
#PathChanged=/var/opt/mysolution/subdir

[Install]
WantedBy=multi-user.target
注释掉的行是根本不起作用的行

mysolution.service

[Unit]
Description="File monitor service unit"

[Service]
Type=oneshot
ExecStart=/bin/chmod -fR ug+rw /var/opt/mysolution/subdir
#ExecStart=/bin/chmod -fR ug+rw /var/opt/mysolution/*
# I don't want to change permissions on mysolution, just all files and dirs under that directory

[Install]
WantedBy=multi-user.target
甚至有可能做到这一点吗?我真的不想手动维护每个需要监控的目录和文件。我只需要在/var/opt/mysolution/*目录的任何子目录中收到新文件的通知。systemd能做到这一点而不必变成某种黑客吗


此外,一旦出现新文件,最好将其传递给相应的服务。有办法吗?

Hi@Vector,你找到解决新文件名问题的方法了吗?没有,很遗憾我没有找到。这可能是systemd路径单元的一个严重限制。您最好使用现有的一些inotify实用程序编写自己的脚本和/或使用inotifyapi运行自己的脚本。我会把它贴在系统列表上,或者向伦纳特·波特林建议,但他有一个令人毛骨悚然的个性,我甚至不敢尝试。他可能会告诉我,我是一个十足的白痴,甚至认为我需要这样的东西,把它当作不必要的东西,并试图说服我,无论如何我从来都不需要它,而不用费心去理解这个问题。与此同时,我在GitHub上发现了一条相关的线索,并发表了一条评论。。。让我看看!