![使用 systemctl 在启动服务时自动启动的问题](https://linux22.com/image/198126/%E4%BD%BF%E7%94%A8%20systemctl%20%E5%9C%A8%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1%E6%97%B6%E8%87%AA%E5%8A%A8%E5%90%AF%E5%8A%A8%E7%9A%84%E9%97%AE%E9%A2%98.png)
我正在尝试systemctl
在 Raspberry pi 4 中自动启动一个程序。
[Unit]
Description = Connect to server automatically on boot
After = multi-user.target
[Service]
Type = idle
ExecStart = /usr/bin/sudo /usr/share/dotnet/dotnet /home/pi/E6101/AV308XC/AV308XC.dll > /home/pi/log2.txt 2>&1
[Install]
WantedBy=multi-user.target
这是我要操作的服务文件。我添加> /home/pi/log2.txt 2>&1
检查它是否工作正常或出了什么问题,但甚至log2.txt
没有创建文件。
所以我检查了我的服务文件的状态dotnet_auto.service
。下面是它的结果。
$ sudo systemctl status dotnet_auto.service
● dotnet_auto.service - Connect to server automatically on boot
Loaded: loaded (/lib/systemd/system/dotnet_auto.service; enabled; vendor preset: enabled)
Active: failed (Result: signal) since Tue 2021-11-09 12:14:01 KST; 2min 34s ago
Process: 741 ExecStart=/usr/bin/sudo /usr/share/dotnet/dotnet /home/pi/E6101/AV308XC/AV308XC.dll > /home/pi/log2.txt 2>&1 (code=killed, signal=ABRT)
11월 09 12:14:01 EMTRP4DEV1 sudo[741]: at Microsoft.Extensions.Configuration.FileConfigurationProvider.HandleException(ExceptionDispatchInfo info)
11월 09 12:14:01 EMTRP4DEV1 sudo[741]: at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(Boolean reload)
11월 09 12:14:01 EMTRP4DEV1 sudo[741]: at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load()
11월 09 12:14:01 EMTRP4DEV1 sudo[741]: at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
11월 09 12:14:01 EMTRP4DEV1 sudo[741]: at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
11월 09 12:14:01 EMTRP4DEV1 sudo[741]: at AV308XC.Program.Main(String[] args) in C:\KDSONG\Project\SKD\2021-08 - AVISS - MEMS SENSOR\AV308XC\Program.cs:line 26
11월 09 12:14:01 EMTRP4DEV1 sudo[741]: pam_unix(sudo:session): session closed for user root
11월 09 12:14:01 EMTRP4DEV1 systemd[1]: dotnet_auto.service: Control process exited, code=killed, status=6/ABRT
11월 09 12:14:01 EMTRP4DEV1 systemd[1]: dotnet_auto.service: Failed with result 'signal'.
11월 09 12:14:01 EMTRP4DEV1 systemd[1]: Failed to start Connect to server automatically on boot.
ExecStart
如果我在控制台上手动运行,该命令效果很好。我已经尝试了Type
和部分的几种选项(也许不是全部......)Restart
。结果略有不同,但大部分相同。
如果有人对此有所了解,请发表评论或回答问题。如果您认为我想要操作的程序的代码似乎是问题所在,请告诉我是什么。但是,很抱歉,我无法向您展示代码……我确实有源代码,但它不是我的……无论如何,除了源代码之外,如果您需要检查某些内容,请发表评论。