如何将非管理员命令安排为 systemd 服务?

如何将非管理员命令安排为 systemd 服务?

例如我想跑步minikube start

首先我创建了以下 minikube.service 文件:

[Unit]
Description=Runs minikube on startup
After=vboxautostart-service.service vboxballoonctrl-service.service vboxdrv.service vboxweb-service.service

[Service]
Type=forking
ExecStart=/usr/local/bin/minikube start

[Install]
WantedBy=multi-user.target

然后我启用它,并在下次重新启动时systemd框架尝试运行它。但是,它失败了,因为显然 minikube start 命令不应该以 root 身份运行:

The "virtualbox" driver should not be used with root privileges.

如何在非管理员用户下运行它?

答案1

您可以定义哪些用户必须使用该服务。例如:

[Unit]
...

[Service]
Type=forking
ExecStart=/usr/local/bin/minikube start
User=user1
Group=group1

...

相关内容