Фишка:
systemd-run позволяет запускать команды как полноценные systemd-сервисы "на лету". Это идеальный инструмент для временных задач, отладки, ограничения ресурсов и тестирования поведения в боевых условиях.
Примеры:
1) Запуск команды в отдельном cgroup с лимитом CPU:
systemd-run --scope -p CPUQuota=20% bash -c "make build"
2) Запуск периодической задачи без cron:
systemd-run --on-calendar="hourly" /usr/local/bin/cleanup.sh
3) Проверка сервиса в sandbox-режиме:
systemd-run --property=PrivateTmp=yes --property=ProtectSystem=strict bash
4) Изоляция для небезопасной команды:
systemd-run -p NoNewPrivileges=yes -p PrivateDevices=yes ./script.sh
Чем полезно:
- Не нужно создавать и чистить unit-файлы
- Команда получает все преимущества systemd: логи, cgroups, sandbox
- Отлично подходит DevOps-инженерам для тестов и временных задач
- Позволяет гарантировать безопасность и стабильность окружения
Если вы ещё не используете
systemd-run как «одноразовый unit-файл», попробуйте - это один из самых недооценённых инструментов systemd.