我在我的 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