小编hur*_*n77的帖子

systemd:mkdir 和 ExecStartPre 的权限问题

这个(缩短的)systemd 服务文件有问题:

[Unit]
Description=control FOO daemon
After=syslog.target network.target

[Service]
Type=forking
User=FOOd
Group=FOO
ExecStartPre=/bin/mkdir -p /var/run/FOOd/
ExecStartPre=/bin/chown -R FOOd:FOO /var/run/FOOd/
ExecStart=/usr/local/bin/FOOd -P /var/run/FOOd/FOOd.pid
PIDFile=/var/run/FOOd/FOOd.pid

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

FOOd为用户名,FOO为组名,我的 daemon 已经存在/usr/local/bin/FOOd

我需要/var/run/FOOd//usr/local/bin/FOOd通过# systemctl start FOOd.service. 这失败了,因为 mkdir 由于权限无法创建目录:

...
Jun 03 16:18:49 PC0515546 mkdir[2469]: /bin/mkdir: cannot create directory /var/run/FOOd/: permission denied
Jun 03 16:18:49 PC0515546 systemd[1]: FOOd.service: control  process exited, code=exited status=1
...
Run Code Online (Sandbox Code Playgroud)

为什么 mkdir 在 ExecStartPre 失败,我该如何解决?(不,我不能对 mkdir 使用 sudo …

permissions systemd

50
推荐指数
3
解决办法
4万
查看次数

运行 du 命令报告无穷大作为磁盘使用量

我正在尝试获取存储在我的主目录中的总大小。令我惊讶的是,它在几秒钟后报告无穷大:

/home/user $ du -sh .
Infinity
Run Code Online (Sandbox Code Playgroud)

嗯?我很确定没有递归符号链接,但du默认情况下无论如何都不应该遵循符号链接。我也试过了,du -shx .所以它不会跨越设备边界 - 结果相同。

我很确定我没有无限的磁盘空间或磁盘使用量。;-)

目标文件系统是一个没有快照的 btrfs 子卷。rsync每天晚上把这个目录同步到一个外部磁盘就好了,这个“无穷大”没有问题。但是,du那里的报告相同。

对评论的回答:

我的主目录中没有挂载点:

$ mount|grep home
/dev/sda3 on /home type btrfs (rw,relatime,compress=lzo,space_cache,autodefrag)
Run Code Online (Sandbox Code Playgroud)

使用完整路径而不是.作为参数显示相同的行为。

没有大于 200GB 的文件:

$ sudo find -size +$((200*1024*1024)) | wc -l
0
Run Code Online (Sandbox Code Playgroud)

filesystems disk-usage btrfs

7
推荐指数
1
解决办法
1723
查看次数

标签 统计

btrfs ×1

disk-usage ×1

filesystems ×1

permissions ×1

systemd ×1