我写了一个脚本,在ubuntu机器上下载并安装kubernetes。
脚本的最后一部分是启动kubelet服务。
<?php
$n = 11;
$o = $_POST["maxprime"];
echo 'The script calculated the next primenumbers:</br>';
echo '2, 3, 5, 7, ';
while (true) {
$t = 6;
while (true) {
if ($n % ($t - 1) == 0) {
break;
}
if ($n % ($t + 1) == 0) {
break;
}
if ($t > sqrt($n)) {
echo("$n, ");
break;
}
$t += 6;
}
if (($n + 1) % 6 == 0) {
$n += 2;
} else {
$n += 4;
}
if ($n > $o) {
break;
}
}
?>
我强迫用户以root用户身份运行脚本。但是,当脚本到达systemctl命令时,它无法执行它。此外,我尝试以root用户身份手动执行命令。我无法这样做。但是,我能够以普通用户身份执行它。 有谁知道为什么?有解决方法吗?
答案 0 :(得分:0)
可能的解决方法是以普通用户身份启动服务,即使脚本以root身份运行也是如此。首先,您需要找出谁是“原始”用户:
originalUser="$(logname 2>/dev/null)"
然后以此用户身份调用服务:
su - "$originalUser" -c "systemctl start kubelet.service"
也许该特定服务依赖于非root用户运行(某些程序测试该服务)。