发布日期:2025-10-05 06:23浏览次数:
今天突发奇想,想用Python整个小工具放到Ubuntu服务器上跑。为就因为我那破服务器整天要手动改配置重启服务,烦透了!想着写个脚本帮我盯着配置文件,变了就自动重载。
直接开搞!用vim捏了个watch_*。最开始想得很美:扫文件夹,隔几秒查一次文件修改时间不就完事了?
写完美滋滋执行python3 watch_*,呵!权限不足直接吃了个sudo大耳刮子!行,硬着头皮加sudo跑起来,结果服务还是没重载。盯着日志看了十分钟才想起来:这货在子进程里跑命令,环境变量根本不对!
淦!赶紧查资料,换成,参数写成["sudo", "/usr/sbin/nginx", "-s", "reload"]。满心以为这回稳了,结果——系统弹窗问我sudo密码!脚本当场卡死在那儿了,把我给整麻了。
只能继续折腾方案:
实在没招了,祭出终极大法:crontab!让脚本只负责检测,检测到变化就往/tmp丢个标记文件,再写个cron任务每分钟检查标记文件。存在就执行重载命令并删标记。
虽然绕了山路十八弯,但好歹能用了!代码长这样:
重点来了:cron用root跑,彻底避开权限坑!
折腾一下午就明白三件事:
看着监控日志疯狂刷新,默默祈祷千万别把服务器整挂了。对,测试时候手贱按错键还触发了个死循环,差点把/tmp目录撑爆... 下次搞个防呆机制(瘫倒