[Решено]Автозапуск скрипта при старте системы через systemd

Ответить
ДонВенчензо
Сообщения: 272
Зарегистрирован: 18 янв 2020, 20:54
Operating system: ROSA Desktop Fresh R12 x86_64 plasma 5

[Решено]Автозапуск скрипта при старте системы через systemd

Сообщение ДонВенчензо » 30 июл 2023, 15:23

Один добырй человек как то мне написал скрипт, который монтирует и расшифровывает LUKS на флешке.

Код: Выделить всё

#!/bin/env bash
DEVICE="$(blkid | grep 2fb27178-7712-4ef0-bd75-1507f9694d75 | cut -d : -f1)"
BLOCK="$(echo "$DEVICE" | cut -d / -f3)"
REALUSER="$(who | grep ":0" | head -n1 | awk '{print($1)}')"

FILE=/media/$REALUSER/LUKS_USB
  if [ ! -d "$FILE" ]; then #Проверяем существует ли каталог /media/REALUSER/LUKS_USB
    mkdir -p "/media/$REALUSER/LUKS_USB"
  fi

MOUNT="$(command -v systemd-mount)"
if [ -n "$DEVICE" ]; then
	cryptsetup -v luksOpen "$DEVICE" "$BLOCK"_crypt --key-file=/root/Luks_USB.key \
		2>&1 > "/tmp/cryptmount.log"
		"$MOUNT" /dev/mapper/"$BLOCK"_crypt "/media/$REALUSER/LUKS_USB" 2>&1 >> "/tmp/cryptmount.log"
else
	exit 0
fi
При старте системы его запускал сервис systemd

Код: Выделить всё

[Unit] 
Description=luxmount
After=multi-user.target

[Service]
Type=oneshot
User=root
ExecStart=/opt/scripts/luxmount.sh

[Install]
WantedBy=multi-user.target
На днях переустановил систему. Поставил Р12.4 Plasma и никак не могу заставить скрипт срабатывать при старте системы.
Запускаю сервис и скрипт срабатывает, но сервис остается неактивным:

Код: Выделить всё

○ luxmount.service - luxmount
     Loaded: loaded (/etc/systemd/system/luxmount.service; enabled; vendor preset: disabled)
     Active: inactive (dead) since Sun 2023-07-30 15:17:57 MSK; 5min ago
    Process: 26164 ExecStart=/opt/scripts/luxmount.sh (code=exited, status=0/SUCCESS)
   Main PID: 26164 (code=exited, status=0/SUCCESS)
        CPU: 44ms

июл 30 15:17:57 ROSALINUX-PC1 systemd[1]: Starting luxmount...
июл 30 15:17:57 ROSALINUX-PC1 luxmount.sh[26173]: Устройство sdg3_crypt уже существует.
июл 30 15:17:57 ROSALINUX-PC1 luxmount.sh[26174]: Started unit media-venlip-LUKS_USB.mount for mount point: /media/venlip/LUKS_USB
июл 30 15:17:57 ROSALINUX-PC1 systemd[1]: luxmount.service: Deactivated successfully.
июл 30 15:17:57 ROSALINUX-PC1 systemd[1]: Finished luxmount
Помогите разобраться, почему сервис не активируется
Последний раз редактировалось ДонВенчензо 03 авг 2023, 08:12, всего редактировалось 1 раз.

irton
Сообщения: 667
Зарегистрирован: 30 окт 2021, 04:17
Operating system: Rosa Fresh Xfce

Автозапуск скрипта при старте системы через systemd

Сообщение irton » 31 июл 2023, 07:39

Активируется, и потом системд его деактивирует.

Щас системд может через .mount файл монтировать, наверное надо это использовать

ДонВенчензо
Сообщения: 272
Зарегистрирован: 18 янв 2020, 20:54
Operating system: ROSA Desktop Fresh R12 x86_64 plasma 5

Автозапуск скрипта при старте системы через systemd

Сообщение ДонВенчензо » 02 авг 2023, 10:29

Худо - бедно разобрался. Systemd запускает скрипт при старте системы. Но скрипт, в свою очередь, в $REALUSER и $DEVICE возвращает пустоту. Поэтому он и не монтирует флешку с LUKS.
В итоге поменял в сервисе на:
[Unit]
Description=luxmount
After=graphicl.target
...
...
Флешка стала монтироваться.
Видимо что-то поменялось при загрузке системы, потому как буквально неделю назад старый сервис работал как часы

keleg
Сообщения: 5518
Зарегистрирован: 15 сен 2011, 01:58

Автозапуск скрипта при старте системы через systemd

Сообщение keleg » 03 авг 2023, 07:45

так системд двигает запуск сервисов (в пределах рамок) по своему усмотрению.
Потому его и ругают, загрузка-то ускоряется чуть, а вот плавающие от изменения порядка загрузки ошибки ловить замучаешься.
Но постепенно они отлавливаются и становится все хорошо и быстро

Ответить

Вернуться в «Обсуждение ROSA Fresh R12 (платформа 2021.1)»