Да, вы можете создать bash-скрипт, который будет выполняться как служба, и затем останавливать и удалять эту службу после завершения своих задач. Однако вам нужно будет учесть некоторые важные моменты, чтобы это работало корректно.
Вот общий подход к реализации:
1. **Создание bash-скрипта**
В вашем bash-скрипте вы можете выполнить необходимые действия, а затем остановить и удалить службу. Для этого вы можете использовать команды `systemctl stop`, `systemctl disable` и `systemctl delete`.
2. **Права доступа**
Скрипт, запускаемый с помощью systemd, будет работать с правами пользователя, под которым запущен сервис. Если это не привилегированный пользователь, может понадобиться использовать `sudo` для выполнения команд, связанных с systemd. Для этого нужно правильно настроить sudoers, чтобы разрешить выполнение команд без запроса пароля.
3. **Пример скрипта**
Вот пример bash-скрипта, который делает то, о чем вы говорите:
```bash
#!/bin/bash
# Здесь выполняем ваши задачи
echo "Выполняю задачи..."
# Имя сервиса
SERVICE_NAME="your_service_name"
# Остановка службы
sudo systemctl stop $SERVICE_NAME
sudo systemctl disable $SERVICE_NAME
# Удаление файла службы
sudo rm /etc/systemd/system/$SERVICE_NAME.service
# Перезагрузка systemd для удаления кэша
sudo systemctl daemon-reload
echo "Служба остановлена и удалена."
```
4. **Конфигурация вашего сервиса**
Ваш файл сервиса должен указывать на этот скрипт в `ExecStart`.
```ini
[Unit]
Description=My Service
[Service]
Type=oneshot
ExecStart=/path/to/your/script.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
```
5. **Запуск и тестирование**
После создания файла вашего сервиса и скрипта вам нужно будет запустить вашу службу:
```bash
sudo systemctl start your_service_name
```
### Замечания:
- Убедитесь, что скрипт имеет права на выполнение: `chmod +x /path/to/your/script.sh`.
- Проверьте права sudo для обслуживания: можно добавить в `/etc/sudoers` запись, которая разрешает выполнение `systemctl` определенному пользователю без необходимости ввода пароля.
- Убедитесь, что ваш сервис будет выполнен только один раз, если это то, что вы ожидаете. Возможные проблемы с повторным запуском или зависшими процессами могут возникнуть, если что-то пойдет не так.
- Учтите, что изменения в `/etc/systemd/system/` и перезапуск `systemctl` требуют полномочий суперпользователя.
После настройки всё должно работать так, как вы задумывали.