SystemD服务单元文件作为用户



我是CentOS 7中SystemD单元文件概念的新手,但需要在boot上启动MATLAB许可证管理器。MATLAB没有提供有关如何执行此操作的特定解决方案,并且以下内容似乎有效,但在键入systemctl start license-managersystemctl stop license-manager时要求密码。这是预期的吗?

注意,这确实需要作为特定用户而不是root运行。

这是我的/etc/systemd/system/license-manager.service文件:

[Unit]
Description=MATLAB FlexLM license manager
[Service]
Type=forking
ExecStart=/usr/local/MATLAB/R2016a/etc/lmstart
ExecStop=/usr/local/MATLAB/R2016a/etc/lmdown
KillMode=none
Restart=on-failure
RestartSec=90
User=lmlicenseuser
[Install]
WantedBy=multi-user.target

您可以尝试crontab

bash$ crontab -e

然后添加以下行

@reboot /usr/local/MATLAB/R201Xx/etc/lmstart

这应该解决您的问题。

传统上,当以其他用户作为其他用户运行命令时,始终会要求非root用户提供密码。

但是,由于您已经指定了它是multi-user.target的依赖性,因此应在以后重新启动时始终自动启动,因此您不需要将来输入密码。

如果由于某种原因您仍然需要在以后手动控制它,则可以使用sudo并编辑/etc/sudoers,以允许使用NOPASSWD

最新更新