PHP tmux和屏幕没有正确的行为(没有启动,没有新的会话,没有新的
我在php中有tmux / screen问题.
当我尝试启动屏幕会话没有任何反应. 当我尝试启动一个tmux会话时,只有当我提供www-data shell访问,甚至没有添加窗口时 我正在努力实现: 现在Web界面将启动这些脚本(所以它们可以在php中执行exec函数). 因为它们是通过php运行的,所以它们以用户www-data的形式运行,所以我无法访问由www-data创建的tmux会话. 所以我在启动窗口/会话时有几个建议: >我有一个命名的会话 tmux new-session -s $SessionName tmux new-session -d -s $SessionName tmux -S $SocketLocationPath new-session -d -s $SessionName 所以我的命令看起来是这样的: tmux -S /tmp/pairedsession.socket new-session -d -s "ProcessGroup1" 此命令的问题: >没有shell访问这个命令返回失败连接到服务器(什么是奇怪的,因为新会话通常应该启动服务器) 但还有一些问题: 正如我之前所说,我想创建一些窗口来处理这些进程 tmux -S $SocketLocationPath new-window -t "$SessionName" -n "$WindowName" "$cmd" 这个工作只适用于php目录中的全局进程(如htop)或进程(如其他脚本) 我试过的 >将2>& 1添加到每个用于调试的命令 – >没有帮助 sudo chsh -s / bin / sh www-data 可能的解决方案 >给www-data shell访问(安全风险?)或者可能限制对tmux的访问,但是如何? 另一个奇怪的事情:当通过php启动tmux会话时,终端没有用户,没有位置 我希望有人可以帮助我,因为我不喜欢这些凌乱的解决方法: 提前致谢
经过一些挣扎,帮助googleguy @ freenode#php我终于打败了.
事实证明,PHP 7.1(在我的情况下)根本没有这样的问题. 我执行这个顺序是成功的: shell_exec("tmux new-session -s session_name -d"); shell_exec("tmux send -t session_name gedit ENTER"); 告诉我它不适合你 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |