我有一个可以运行的 war 文件:java -jar /opt/path/to/my.war
相同的命令位于服务文件中,如下所示:
[Unit]
Description=My Service
[Service]
WorkingDirectory=/opt/path/to/
ExecStart=/opt/path/to/jre8/jre/bin/java -jar /opt/path/to/my.war --spring.profiles.active=prod
PIDFile=/opt/path/my.pid
[Install]
WantedBy=multi-user.target
当我运行service myservice start
该服务时,它会像单独使用命令一样启动。不同之处在于,使用 时service
,加载网页会在浏览器控制台中产生错误:
Uncaught Error: [$injector:modulerr] Failed to instantiate module myApp due to:
Error: [$injector:nomod] Module 'myApp' is not available!
浏览器显示空白页。
请注意,/opt
仅通过 可用sudo su
。仅在 中运行该命令su
有效。因此,问题是当服务执行命令时会发生一些不同的事情,但我不知道是什么。
答案1
我认为您正在创建一个单元文件,它应该与 systemctl 一起使用。因此,请尝试一下systemctl start myservice
。