为什么我的 systemd 服务会创建写保护文件?

为什么我的 systemd 服务会创建写保护文件?

我在我的 Ubuntu 22.04 笔记本电脑中创建了一个 systemd 服务,它通过调用 bash 文件来运行 java 程序。

[Unit]
Description=Script to run JMS

[Service]
ExecStart=bash /home/user/Desktop/path_to_my_file/run_java.sh

[Install]
WantedBy=run_jms.target

当我启动这个过程时,java程序生成的所有文件被写保护。但是,如果我直接从命令行执行 bash 文件,生成的文件没有写保护

如何使 systemd 服务不生成写保护文件?

答案1

如果User未在 中指定[Service],则服务的输出可能属于另一个用户,因此将显示为写保护。要解决这个问题,只需添加一个新行:

[Service]
ExecStart=bash /home/user/Desktop/path_to_my_file/run_java.sh
User=user

相关内容