php ssh2_exec 挂在“crontab -e”命令上

php ssh2_exec 挂在“crontab -e”命令上

我使用 连接到远程服务器ssh2_connect。在我的安全日志中,我得到了

Feb 22 11:41:57 centos sshd[3243]: Accepted publickey for subscr from 83.166.241.41 port 53306 ssh2
Feb 22 11:41:57 centos sshd[3243]: pam_unix(sshd:session): session opened for user subscr by (uid=0)

所有 shell 命令都有效,但当我尝试“crontab -e”时,我的 php 脚本挂起了

crontab日志中我看到

Feb 22 11:41:57 centos crontab[3248]: (subscr) BEGIN EDIT (subscr)

我尝试了“crontab -r”命令,它起作用了。在 crontab 日志中我看到

Feb 22 11:41:37 centos crontab[3205]: (subscr) DELETE (subscr)

所以我猜测所有权限都没问题。

我的问题是为什么 php 脚本仅在我运行时挂起

ssh2_exec($conn, "crontab -e");

答案1

crontab -e发出交互式编辑器来修改crontab正在运行的用户。如果您在 中运行php,您很可能没有本地终端和任何可以为您显示编辑器的东西(也没有办法在浏览器中显示它,除非您那里有一些特殊的模拟器)。

相关内容