【问题标题】:sudo screen -dmS须藤屏幕-dms
【发布时间】:2018-02-17 04:32:21
【问题描述】:

我正在尝试使用 shell_exec()PHP 脚本启动一个新屏幕,我正在运行的命令是使用 sudo,即 sudo screen -dmS [name] ....,而我可以杀死使用sudo screen -S [name] -X quit 的屏幕非常好,我无法使用给定名称创建新屏幕,有什么想法吗? (顺便说一句,我已将我的用户添加到 sudoers)

【问题讨论】:

    标签: php sudo shell-exec gnu-screen


    【解决方案1】:

    首先,如果您正在执行脚本,请确保该脚本设置了执行标志(如果需要);如果不是我不怀疑的问题....

    这很可能是您的环境 PATH 的问题。

    当您启动一个新的屏幕会话并运行您的程序时,您将使用默认会话设置生成一个新环境;这意味着您的 .bashrc.profile 或任何 shell 自定义脚本都不会在启动脚本之前运行。

    我在这里的假设是您的脚本正在使用您的用户 PATH 中存在的路径进行轰炸,但不在屏幕会话的 PATH 中。重新定义搜索路径,或完全限定脚本中使用的所有可执行文件的路径。

    尝试使用-L 启动屏幕

    这将在您当前的工作目录中创建一个文件 screenlog.0,这将包含屏幕会话中的 stderr 和 stdout 的内容,即使它突然退出。

    screen -dmLS anything /path/to/script
    cat ./screenlog.0
    

    【讨论】:

    • 好的,我已经完成了,它显示为This account is currently not available
    • @StanVanderban 您是否尝试作为不同的用户做某事?检查该用户的登录 shell ( /etc/passwd ) 如果它被设置为 /bin/false 之类的东西,那是有原因的。也许为您的特定应用程序创建一个新的命名用户?
    猜你喜欢
    • 2017-03-08
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多