微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – Crontab重启服务

我在AWS EC2微实例上运行Web服务器.该实例具有~630MB的RAM.随着时间的推移,我有几个httpd进程和很少的免费RAM.当我重新启动httpd服务时,我最终释放了大约350MB的RAM.

我想在root下使用cron作业每12小时自动执行一次.我的脚本包含代码

service httpd restart
service MysqLd restart
ps aux
free -m

这是我第一次尝试cron脚本.

我收到一封电子邮件,其中包含ps aux和free -m的预期输出,但是

./scriptName.sh: line 1: service: command not found
./scriptName.sh: line 2: service: command not found

用于重启命令.

该脚本确实以root身份运行.我担心使用sudo可能导致脚本挂起.来自ps输出的相关行 –

root     14664  0.0  0.2 142200  1720 ?        S    22:41   0:00 CROND
root     14665  0.0  0.2   9296  1236 ?        Ss   22:41   0:00 /bin/sh -c ./scriptName.sh
smmsp    14667  0.0  0.6  76020  4244 ?        R    22:41   0:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f root
root     14669  0.0  0.1  11244  1008 ?        R    22:41   0:00 ps aux

成功重启服务的正确做法是什么?

做这样的事情是否可取?

输出free -m

total       used       free     shared    buffers     cached
Mem:           596        573         23          0          8         71
-/+ buffers/cache:        493        103
Swap:            0          0          0

解决方法

主要问题是在cron的运行环境中没有定义正确的$PATH,因此您需要使用完整的服务路径来实现此功能.

您可以使用命令找到此路径,该命令应打印/usr/sbin / service之类的内容.

第二个问题:我不会这样做,只是盲目地重新启动生产系统上的服务绝不是一个好主意.您是否有实际的内存/性能问题,或者可能是您的RAM仅被缓冲区等用尽(参见http://www.linuxatemyram.com/)?

请在几小时后将free -m的输出添加到您的问题中.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐