我正在尝试提供一项服务,每 60 秒删除一个目录中的所有文件。我可以通过检查几分钟的状态来判断该服务正在重新启动,并且它每分钟都在激活
Active: activating (auto-restart) since Sun 2020-09-20 10:46:06 UTC; 3s ago
Process: 479 ExecStart=/bin/rm -rf /data/* (code=exited, status=0/SUCCESS)
这就是我目前的服务
[Unit]
Description=Cleans data directory
[Service]
User=root
Restart=always
RestartSec=60
ExecStart=rm -rf /data/*
[Install]
WantedBy=multi-user.target
我确实尝试过使用 Type=simple,甚至去掉了重新启动部分,并使用了与服务同名的计时器,但 /data 中的文件不会被删除。该服务应该具有权限,因为它具有根级别权限,但我无法弄清楚为什么几分钟后 /data 中仍然有文件。
另外,如果我手动运行该命令,rm -rf /data/*
所有文件都会被删除。
答案1
通过 shell 运行命令:ExecStart=/bin/sh -c 'exec rm -rf /data/*'