概述
1、以daemon方式启动rsync为例子,文件为 /tmp/restart_rsync.py
# -*- coding: utf-8 -*-
import os
if __name__ == "__main__":
#杀掉进程
pid_path = "/var/run/rsyncd.pid"
if os.path.exists(pid_path):
f = file(pid_path,"r")
pid = f.read()
f.close()
kill_cmd = "kill -9 %s"%pid
os.system(kill_cmd)
os.remove(pid_path)
start_cmd = "/usr/bin/rsync --daemon --config=/home/rsync/rsyncd.conf"
os.system(start_cmd)
2、crontab中配置
*/1 * * * * flock -xn /tmp/restart_rsync.lock -c "python /tmp/restart_rsync.py"
3、定时器执行一遍rsync服务重启,之后,定时器执行,rsync进程再也不重启了
4、通过lvsof 查看文件句柄
lsof |grep restart_rsync.lock
发现restart_rsync文件被 rsync服务打开,没有释放
5、解决办法:
去掉flock
遇到这种需要启动daemon进程的情况,可以依据上面 /tmp/restart_rsync.py 代码的原理,
自己去找到服务的pid,然后杀掉,再重启
定时器修改如下:
*/1 * * * * python /tmp/restart_rsync.py
最后
以上就是机智帽子为你收集整理的crond中flock启动daemon进程不释放问题 的全部内容,希望文章能够帮你解决crond中flock启动daemon进程不释放问题 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复