php - AT 作业不会运行脚本,但如果粘贴到命令行,脚本会运行
问题描述
每当我在博客上发帖时,我都有这三个文件来通知我的电子邮件列表:“functionality_plugin.php”——包含 new_post_notify() 它创建——>
html 文件夹中的“run_email_processor.sh”,并在服务器上设置一个 AT 作业来运行它。—>
“run_email_processor.sh”触及服务器上的“email_processor.php”,该服务器使用 .sh 脚本中的参数构造电子邮件。它循环遍历将构建的电子邮件发送到每个地址的电子邮件列表。它还会在所有通过电子邮件发送的地址的同一目录中写入一个日志文件。
问题 AT 作业中的“run_email_processor.sh”通常包含以下内容:
#!/bin/bash
php -f ../var/www/html/wp-admin/email_processor.php arg1 arg2 arg3 arg4 arg5
如果我将内容粘贴到命令行并按 Enter 键,下游进程将按预期运行,发送所有电子邮件。
但是,如果我让 AT 作业执行脚本,则下游不会发生任何事情。
- AT 作业归 www-data:www-data 所有。
-email_processor.php 具有完整的权限集(用于测试)。
- AT 作业使用 atq 如下所示:
45 Tue Feb 25 13:30:00 2020 a www-data
- 使用 at -c 45,我可以查看 AT 作业的内容。
- 如上所述,如果我将内容复制/粘贴到命令行并运行它,一切都会按预期工作。
问题 为什么它在粘贴到命令行时有效,但从 AT 作业运行时无效???
解决方案
推荐阅读
- reactjs - 如何将类函数移到类之外并在 React 中仍然使用 this 关键字?
- python - 连接和合并数据框
- python - (Tkinter)如何使用这种模式为对象着色?
- c++ - C++:如何使用“for”循环来乘以二维数组?
- modelica - 为什么在 Dymola/Modelica 中通过 Controlbus 组件连接的模型之间无法识别参数?
- java - 如何理解一串逻辑比较?
- python - 我的 for 循环随机卡住并且没有完成它的范围
- python - 如何使用python获得超出线性回归结果的预测
- c++ - 函数返回的类实例的生命周期是什么?
- android - 我收到“未附加到活动”错误