php - Unix `at` 命令通过 PHP

标签 php ubuntu ssh at-job

这是我创建一个新的 at 作业的代码...
system('echo\'php -f/path/to/my/php/file.php\' | at 1700');

我认为这很简单并且可以正常工作,但是,没有任何反应!

当我运行 echo\'php -f/path/to/my/php/file.php\' |在 1700 通过 ssh 一切正常。

这是权限问题吗?即不允许 PHP 创建新的 at 作业?

最佳答案

仅供引用,您必须确保允许从 PHP 脚本执行系统命令。

许多服务器都禁用了此功能。

但是,如果你想重新打开它,我相信你可以在 php.ini 文件中这样做,你必须将 safe_mode 关闭。

当允许将用户提供的数据传递给此函数时,请使用 escapeshellarg() 或 escapeshellcmd() 以确保用户无法欺骗系统执行任意命令。

如果一个程序用这个函数启动,为了让它继续在后台运行,程序的输出必须重定向到一个文件或另一个输出流。如果不这样做,将导致 PHP 挂起,直到程序执行结束。

注意:启用安全模式后,您只能执行 safe_mode_exec_dir 中的文件。出于实际原因,目前不允许在可执行文件的路径中包含 .. 组件。

关于php - Unix `at` 命令通过 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7404944/

相关文章:

ubuntu - 远程桌面连接到 GCP 中的 Ubuntu

linux - 无法进行 LibreOffice 在线构建

python - 使用Python 3 paramiko进行SSH编程,尝试执行命令时出现EOFError

linux - 通过 ssh 在远程机器上运行 jq 并覆盖文件

php - 如何使用 % 防止 Zend Form 的 XSS 攻击

php - jquery-ajax : pass values from a textfield to php file and show the value

python - 是 Django 部署中的目录错误

visual-studio-code - 为什么 VSCode 扩展在 SSH 中不起作用

javascript - Chartjs 动态图表同时返回 x 和 y 轴未定义

PHP函数创建表,如何添加数据库ID作为URL参数?