-1

我写了一个脚本来在 ubuntu 机器上下载和安装 kubernetes。

脚本的最后一部分是启动 kubelet 服务。

echo "Initializing the master node"
kubeadm reset
systemctl start kubelet.service
kubeadm init

我强制用户以 root 用户身份运行脚本。但是,当脚本到达 systemctl 命令时,它无法执行它。此外,我尝试以 root 用户身份手动执行该命令。我无法这样做。但是,我能够以普通用户的身份执行它。有谁知道为什么?有解决方法吗?

4

1 回答 1

0

一种可能的解决方法是以普通用户身份启动服务,即使脚本以 root 身份运行。首先,您需要找出谁是“原始”用户:

originalUser="$(logname 2>/dev/null)"

然后以该用户身份调用服务:

su - "$originalUser" -c "systemctl start kubelet.service"

也许该特定服务取决于由非 root 用户运行(某些程序对此进行测试)。

于 2016-12-01T00:08:39.610 回答