You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于系统账户minecraft-server的用户级systemd服务状态查询与日志查看的技术疑问

关于系统账户minecraft-server的用户级systemd服务状态查询与日志查看的技术疑问

各位好,我最近在处理系统账户下的用户级systemd服务时碰到了些搞不懂的地方,想跟大家请教下:

我有一个由quadlet生成的服务,路径是/var/minecraft/.local/containers/systemd/minecraft.container,这个服务已经启用,每次系统启动都会自动运行。它是在minecraft-server这个系统账户下跑的,该账户的家目录设置为/var/minecraft

这个账户是系统账户,我在搞清楚怎么启停它的时候费了好大劲:

  • 我一开始以为用这个命令就能查看服务状态:
    # 我原本预期能用这个命令:
    sudo -u minecraft-server systemctl --user status minecraft.service # 无法正常运行
    
  • 但试了半天发现,必须加上-M选项才行:
    # 实际可行的命令:
    sudo systemctl -M minecraft-server@ --user status minecraft.service # 可以正常运行
    

另外,查看这个服务的日志也得手动过滤,我得用_SYSTEMD_USER_UNIT_UID这两个参数来筛选:

# 必须手动通过`_SYSTEMD_USER_UNIT`和`_UID`过滤日志
sudo journalctl _SYSTEMD_USER_UNIT=minecraft.service _UID=<minecraft-server账户的UID>

有没有大佬能解释下为啥会这样?比如为什么sudo -u的方式行不通,必须用-M选项?还有日志查看有没有更简便的方法?

备注:内容来源于stack exchange,提问作者Jeroen

火山引擎 最新活动