【问题标题】:Any way to continue the running script in other shell在其他 shell 中继续运行脚本的任何方式
【发布时间】:2014-06-25 17:03:47
【问题描述】:

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

【问题讨论】:

  • 您必须向我们展示脚本,或者至少是其中的相关部分。

标签: linux bash shell root


【解决方案1】:

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

nohup /path/to/script.sh

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

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

【讨论】:

  • 您好,感谢您的回复。实际上,该脚本旨在登录到超级用户的别名并以超级用户的身份执行某些功能并仅停留在那里,而不是从超级用户 shell 中注销。使用 nohup 使其退出并返回到普通用户 shell
【解决方案2】:

无论您在登录超级用户后执行什么命令,只需将它们全部收集到脚本文件中即可。并执行它们-

nohup script.sh &

nohup 结合“&”将帮助您立即退出超级用户会话。

【讨论】:

  • 您好,感谢您的回复。实际上,该脚本旨在登录到超级用户的别名并以超级用户的身份执行某些功能并仅停留在那里,而不是从超级用户 shell 中注销。使用 nohup 使其注销并返回到普通用户 shell
  • 你试过“su root -c ”。这是我的输出。 test1@AgentX:/var/log$ su root -c whoami 输出:root
  • 实际上我使用的是 dzdo 命令,而不是 su 或 sudo。当 dzdo 与 -u & -i 一起使用时,它允许我们以不同的用户身份登录(而不是作为超级用户),(在我的情况,它是一个超级用户)。在我发出命令后:dzdo -iu 我以另一个用户身份登录,但此后脚本暂停运行,因为它完全是一个新的 shell/用户,并且脚本在我注销后立即恢复。我找到了一种方法,我可以在超级用户的目录中创建一个脚本并使用以下命令通过我的本地脚本调用该脚本:dzdo -u 例如:dzdo -u newuser sh abc.sh
【解决方案3】:

实际上我使用的是 dzdo 命令,而不是 su 或 sudo。当 dzdo 与 -u 和 -i 一起使用时,它允许我们以不同的用户身份登录(而不是作为超级用户),(在我的情况下,它是超级用户)。在我发出命令后:dzdo -iu 我以另一个用户身份登录,但此后脚本暂停运行,因为它完全是一个新的 shell/用户,并且脚本在我注销后立即恢复。我找到了一种方法,我可以在超级用户的目录中创建一个脚本并使用以下命令通过我的本地脚本调用该脚本:dzdo -u 例如:dzdo -u newuser sh abc.sh

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-27
    • 2017-12-16
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    相关资源
    最近更新 更多