xlo*_*der 5 apache-http-server bash cron php nice
我有一个需要在共享虚拟主机上运行的 php 脚本。我创建了一个执行 sh 脚本的 cron 作业。我的 crontab 中的命令是:
/bin/sh /home/user/script.sh
我假设它是 Bourne Shell(或兼容的东西)。脚本本身是:
#!/bin/sh
cd /home/user/public_html/folder/
#updating DB
php -q ./run_interactive_job.php batch_control_files/updateDB
echo Updated DB results
Run Code Online (Sandbox Code Playgroud)
我有以下问题:
我可以为 php 命令添加很好的优先级吗?或者我是否需要在 cron 命令中将其添加到脚本中。
哪一个更有可能工作?
nice 10 php -q ./run_interactive_job.php batch_control_files/updateDB
上述命令在以较低优先级运行时会成功吗?
PS:基本上,这个脚本在我通过浏览器运行它之前已经使服务器过载,它影响了该服务器上的 APACHE,导致我的主机阻止了该文件。我一再要求他们解锁以使用不同的参数对其进行测试。现在我试图以较低的优先级通过 cron 运行它 - 希望它不会影响 APACHE。但我不希望它再次产生问题,因此我尝试使用nice。
更新:我使用了那里显示的批处理文件。我在批处理文件中的 php 之前使用了 nice 命令。唯一的区别是:
nice -n 10 php -q ./run_interactive_job.php batch_control_files/updateDB
我添加了命令来运行其他具有相同属性的 php 脚本。他们都工作得很好。
感谢大家的输入@sm4rk0 答案解决了我的问题
nice两种方法都应该有效,但在我看来,就像您在示例中所做的那样,将其放入脚本中会更干净。经过检查后,man nice我发现相关示例的语法错误。正确的语法是:
nice -n 10 command
Run Code Online (Sandbox Code Playgroud)
Niceness 范围从 -20(最有利的调度)到 19(最不有利的调度)。
并且,正如 terdon 所说,10 是默认值,因此可以省略“-n 10”。
注意:虽然它会降低进程优先级,但nice不会使其减少CPU负载。所以,如果担心的唯一原因是不要“窒息” apache,那么这个方法就可以了。但如果你的主机给你一些CPU时间配额,这不会有太大帮助。
| 归档时间: |
|
| 查看次数: |
10375 次 |
| 最近记录: |