【发布时间】:2014-06-25 17:03:47
【问题描述】:
我创建了一个脚本,在该脚本执行期间我以不同的用户(超级用户)身份登录,但此后的命令被搁置,直到我注销其他用户。有什么方法可以让登录命令之后的脚本(作为超级用户)继续在新登录的用户中执行?
【问题讨论】:
-
您必须向我们展示脚本,或者至少是其中的相关部分。
我创建了一个脚本,在该脚本执行期间我以不同的用户(超级用户)身份登录,但此后的命令被搁置,直到我注销其他用户。有什么方法可以让登录命令之后的脚本(作为超级用户)继续在新登录的用户中执行?
【问题讨论】:
您可以使用 nohup 运行脚本,无论用户是否注销,它都会一直运行到脚本完成。
nohup /path/to/script.sh
您也可以使用以下命令在后台运行它: nohup /path/to/script.sh &
【讨论】:
无论您在登录超级用户后执行什么命令,只需将它们全部收集到脚本文件中即可。并执行它们-
nohup script.sh &
nohup 结合“&”将帮助您立即退出超级用户会话。
【讨论】:
实际上我使用的是 dzdo 命令,而不是 su 或 sudo。当 dzdo 与 -u 和 -i 一起使用时,它允许我们以不同的用户身份登录(而不是作为超级用户),(在我的情况下,它是超级用户)。在我发出命令后:dzdo -iu 我以另一个用户身份登录,但此后脚本暂停运行,因为它完全是一个新的 shell/用户,并且脚本在我注销后立即恢复。我找到了一种方法,我可以在超级用户的目录中创建一个脚本并使用以下命令通过我的本地脚本调用该脚本:dzdo -u 例如:dzdo -u newuser sh abc.sh
【讨论】: