Ubuntu 19.04 использует systemd
, поэтому предпочтительным способом для таких сценариев будет использование службы sysd -.
Для этого вам понадобятся два файла :1 )тот script.sh
, который вы уже написали (Я предполагаю, что он проверен и работает )и 2 )модульный файл, определяющий службу systemd.
Примером последнего может быть:
[Unit]
Description=Service to check for external monitors during boot.
[Service]
Type=Simple
ExecStart=/bin/bash /path/to/your/monitor/script.sh
[Install]
WantedBy=multi-user.target
Description
и ExecStart
должны говорить сами за себя -пояснения, Type=Simple
означает, что сценарий должен запускаться только один раз (, а не каждые X секунд или около того )и WantedBy=multi-user.target
заставляют его запускаться после того, как вы «нормальная» загрузка (без выключения, без режима восстановления и необязательной графики ). Конечно, вы можете сделать скрипт исполняемым и не добавлять /bin/bash
в строку ExecStart
-.
Сценарий переходит к /etc/systemd/system
, например. по имени monitor-check.service
обратите внимание, что суффикс.service
-обязателен! Установите владельца на root
и разрешения на 644
.
Вы можете протестировать сервис,
systemctl start monitor-check
или
service monitor-check start
и проверьте состояние, заменив start
на status
в приведенных выше командах.
Чтобы включить использование сервиса загрузки:
systemctl enable monitor-check.service
Если вы теперь посмотрите на service monitor-check status
, вы должны прочитать enabled
в строке Loaded:
-.
Разумеется, сам скрипт должен принадлежать пользователю root и иметь644
-разрешения из соображений безопасности. Лучше всего хранить его в новых каталогах, таких как, например. /etc/my_scripts
или /etc/systemd/my_scripts
.
После перезагрузки вы можете использовать статус службы, чтобы проверить ее код выхода.
Похоже,https://github.com/vgough/encfsдолжен удовлетворить все ваши потребности.
Или https://www.ecryptfs.org/, что является более современной реализацией с отличными функциями.