我有一个应用程序,我试图在ubuntu上通过systemd运行mono 我跑的时候
systemctl status myservice.service
我得到以下内容:
Loaded: loaded (/lib/systemd/system/myservice.service; bad; vendor preset: enabled)
Active: inactive (dead)
我的服务文件如下:
[Unit]
Description=The description
After=network.target
[Service]
User=theuser
ExecStart=/usr/bin/mono -- /home/pathtoservice/myapplication.exe --parameter1=p1 --parameter2=p2
[Install]
WantedBy=multi-user.target
我跑了:
/usr/bin/mono -- /home/pathtoservice/myapplication.exe --parameter1=p1 --parameter2=p2
从命令行它的工作原理。 关于什么是错的任何想法?
我认为它在服务文件中,但已查看其他示例,并且无法查看它有什么问题。 ubuntu的新手,所以不确定在哪里查看诊断问题
答案 0 :(得分:1)
首先,检查您的日志:
journalctl -u myservice.service
将其添加到您的单元文件可能会改善日志记录:
StandardOutput=journal+console
在某些情况下,如果在服务退出之前发生了某些日志记录,则日志不会被服务标记,因此在运行服务之后,请查看:
journalctl
对于退出服务后的条目。
另外,使用network.target
代替network-online.target
。
我认为应用程序本身可以从命令行运行。假设它以这种方式工作而不是来自systemd,不同的环境变量可能是一个问题。在应用程序顶部添加一行以转储所有环境变量,并在从systemd
与CLI运行时比较该输出。
最后,查看Type=的文档。如果默认Type =不适用于您的案例,请相应地进行设置。
systemd
可能会更好地回答Activity.recreate()
特有的未来问题,因为它们与编程没有直接关系。