Я переношу свой сценарий инициализации mysql, который проверяет, доступно ли дисковое пространство> 100 МБ, если нет, спите 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
Есть ли более чистое решение? Возможно, тот, где mysql останавливается, когда доступное дисковое пространство падает ниже определенного порога. Могу ли я сделать фиктивный блок и включить его в Требуется ? Сродни Upstart's start on starting mysql
.
Лучшее, что вы можете сделать, это переместить длинную строку bash в отдельный файл и ExecStartPre=
вызовите этот файл.
Нет встроенного system
функция или директива для условного запуска службы в зависимости от доступного дискового пространства.