Systemd服务单元文件作为用户

时间:2016-12-21 02:17:14

标签: linux centos centos7 systemd

我对Centos 7中systemd单元文件的概念不熟悉,但需要在启动时启动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

2 个答案:

答案 0 :(得分:0)

传统上,在向其他用户运行命令时,非root用户总是被要求输入密码,是的。

但是,因为您已指定它是multi-user.target的依赖项,所以每次重新启动时都应该自动启动它,因此您以后不需要输入密码。

如果出于某种原因你将来仍然需要手动控制它,你可以使用sudo并编辑/etc/sudoers以允许这两个特定命令在没有密码的情况下运行,使用{{1 }}

答案 1 :(得分:0)

您可以尝试Crontab

bash$ crontab -e

然后添加以下行

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

这应该可以解决您的问题。