![php ssh2_exec 挂在“crontab -e”命令上](https://linux22.com/image/699285/php%20ssh2_exec%20%E6%8C%82%E5%9C%A8%E2%80%9Ccrontab%20-e%E2%80%9D%E5%91%BD%E4%BB%A4%E4%B8%8A.png)
我使用 连接到远程服务器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
,您很可能没有本地终端和任何可以为您显示编辑器的东西(也没有办法在浏览器中显示它,除非您那里有一些特殊的模拟器)。