我有一个 Raspberry PI (Ubuntu 20.04),它正在运行一个 Web UI,其中有一个按钮可以打开继电器(从 Web UI 与 Raspberry PI 通信),因此为了做到这一点,我需要使用 sudo 权限运行它。这是我的服务文件
[Unit]
Description= My Web UI
[Service]
WorkingDirectory=/var/www
ExecStart=/home/ubuntu/.dotnet/dotnet /var/www/My.Web.dll
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-My.Web
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
如果我将/usr/bin/sudo放在ExecStart 的开头,就需要全部了吗?
我需要User=www-data吗?我尝试将 sudo 放入 USER 但收到错误:“Auth 无法识别密码”
服务可以通过服务文件启用和禁用,sudo
并且不需要包含在服务文件中。您配置文件的方式在语法上似乎是正确的,因此,考虑到这一点,应该可以像这样激活它:
sudo systemctl enable {name_of}.service
Run Code Online (Sandbox Code Playgroud)
注意:一定要替换{name_of}
为实际的.service
文件名。
如果服务要作为 运行www-data
,那么User=www-data
是必需的。
只要一切顺利,您应该能够启动该服务:
sudo service {name_of} start
Run Code Online (Sandbox Code Playgroud)
注意:再次强调,请务必替换{name_of}
为服务名称。注意这里没有.service
。
只要一切正常,您就可以将其视为常规服务,通过以下方式检查其状态:
sudo service {name_of} status
Run Code Online (Sandbox Code Playgroud)
停止它:
sudo service {name_of} stop
Run Code Online (Sandbox Code Playgroud)
并重新启动它:
sudo service {name_of} restart
Run Code Online (Sandbox Code Playgroud)
注意:更新 .Net 包后通常需要执行此操作,以确保清除旧缓存并正确加载新文件。
归档时间: |
|
查看次数: |
6802 次 |
最近记录: |