我正在迁移我的初级mysql初始化脚本,检查是否有> 100MB的磁盘空间availabe,如果没有,睡眠10秒,然后再试一次。
我可以像这样在systemd中实现它,但它伤害了我的眼睛。
[Service] RestartSec=10 Restart=on-failure ExecStartPre=/bin/bash -c '/usr/bin/test $(($(/usr/bin/stat -f --format="%a*%S/1024/1024" /data))) -gt 100 || (echo Less than 100MB available on /data; /bin/false)' ExecStart=/usr/sbin/mysqld TimeoutSec=300
有更清洁的解决scheme吗? 当可用磁盘空间低于某个阈值时,可能会停止mysql。 我可以制作一个虚拟单元并将其包含在“ 需求”中吗? 类似于Upstart start on starting mysql的start on starting mysql 。
你可以做的最好的办法就是将长长的bash移动到它自己的文件中,并且ExecStartPre=调用这个文件。
没有内置的systemfunction或指令来根据有多less磁盘空间可用来有条件地启动服务。