任何方式继续在其他shell中运行脚本

时间:2014-05-08 10:44:22

标签: linux bash shell root

我创建了一个脚本,在脚本执行期间我以不同的用户(超级用户)身份登录,但此后的命令被暂停,直到我注销其他用户。登录命令后的脚本(作为超级用户)是否有任何方法可以在新登录的用户中继续执行?

3 个答案:

答案 0 :(得分:1)

您可以使用nohup运行脚本,该脚本将一直运行,直到脚本完成,无论用户是否注销。

nohup /path/to/script.sh

您还可以使用以下命令在后台运行: nohup /path/to/script.sh& amp;

http://linux.die.net/man/1/nohup

答案 1 :(得分:1)

无论您在登录超级用户后执行什么命令,只需在脚本文件中收集所有命令。并使用 -

执行它们
nohup script.sh &

nohup与"&"将帮助您立即退出超级用户会话。

答案 2 :(得分:0)

其实我使用的是dzdo命令,而不是su或sudo。当dzdo与-u&同时使用时-i,它允许我们以不同的用户身份登录(不像超级用户那样疯狂),(在我的例子中,它是超级用户)。在我发出命令之后:dzdo -iu我以其他用户身份登录,但脚本在此之后暂停运行,因为它完全是一个新的shell /用户&一旦我退出,脚本就会自动恢复。我找到了一种方法,我可以在超级用户的目录中创建一个脚本&使用以下命令通过我的本地脚本调用该脚本:dzdo -u例如:dzdo -u newuser sh abc.sh