我是CentOS 7中SystemD单元文件概念的新手,但需要在boot上启动MATLAB许可证管理器。MATLAB没有提供有关如何执行此操作的特定解决方案,并且以下内容似乎有效,但在键入systemctl start license-manager
和systemctl 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
。