Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Остановить загрузку Ubuntu до завершения копирования в tmpfs  (Прочитано 2502 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн u-Art

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Создал для кэша браузера папку в tmpfs, столкнулся с проблемой - система загружена, а файлы еще копируются с диска в память (rsync).
Пробовал два варианта загрузок: с помощью сервиса systemd и скрипта в unit.d. В обоих случаях система загружается раньше, чем завершается копирование файлов.
Возможно ли остановить загрузку системы до окончания копирования файлов с помощью rsync?

Ubuntu 16.04

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7207
  • Luck Tales
    • Просмотр профиля
systemd:
Before=graphical.target
не?
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн u-Art

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
[Unit]
Description=Script to start
Before=graphical.target

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/home/art/start-stop/start_script.sh

[Install]
WantedBy=multi-user.target

Добавка "Before=graphical.target" ни чего не дала, юнит запускает скрипт и продолжается загрузка (не ждет завершения работы скрипта).

Оффлайн pfg21

  • Участник
  • *
  • Сообщений: 177
    • Просмотр профиля
systemctl daemon-reload надеюсь не забывал запустить ?? а то система будет работать по старому :)

как вариант, посмотреть лог загрузки
systemd-analyze plot > 111.svg
и выбрать какой момент ты хочешь отсрочить.

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
u-Art, и для чего изобретать "велосипед"?
1) Есть PSD (у меня и Skype синкается через него)
2)
Код: (bash) [Выделить]
rm -rf ~/.cache
ln -s /run/user/`id -u` ~/.cache
Да и вообще есть целая тема по настройке Ubuntu на SSD
Я делал еще и такое:
https://forum.ubuntu.ru/index.php?topic=190119.msg2184290#msg2184290
https://help.ubuntu.ru/wiki/ssd


Пользователь добавил сообщение 22 Ноября 2017, 14:07:49:
ALiEN175, не. SystemD делает запуск служб в несколько потоков)
pfg21, а это каким боком? но разжую: у ТС служба стартует и он в курсе как добавлять ее в автозапуск. Задача: приостанавливать запуск остальных служб до завершения выполнения указаной.
« Последнее редактирование: 22 Ноября 2017, 14:42:17 от EvangelionDeath »
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн u-Art

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
EvangelionDeath, RAM-диск создаю не только ради кэша, хотелось бы решить эту простую задачу средствами systemd.

Нашел решение (вернее костыль).
Скриптом создаю файл /etc/nologin, затем копирую в tmpfs файлы и удаляю nologin.

Вариант рабочий, но точно не по-феншую.

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
u-Art, так PSD и есть служба systemd, только уже в userspace, то есть выполняется с правами пользователя и тогда, когда это реально надо.

PSD "из коробки" умеет синкать конфиги браузеров (хистори, пароли и т. д.) частоту синка можно менять в конфиге. При логине данные пишутся на рамдиск, потом с определенным интервалом синкаются с данными на диске (то есть с рам на диск). то же самое происходит и при выключении (остановке службы). Обучить можно и другие данные синкать (у меня сикается так еще скайп, по ссылке есть как это сделать).

А потому дайте больше данных: что вы еще хотите хранить в рам диске? Какую задачу еще надо решить?
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн pfg21

  • Участник
  • *
  • Сообщений: 177
    • Просмотр профиля
да я так, что пришло то сказал.

если тебе хватает тормознуть login, то может добавить в соответствующую службу, емнип sysytemd-logind, строчку
After=my_script.service

побыстрому это можно сделать через drop-in-directory т.е. сотворить файлик /lib/systemd/system/systemd-logind.d/myscript.conf с таким содержанием
[Unit]
After=my_script.service

Оффлайн u-Art

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
EvangelionDeath, ram-диск изначально в использовании для пакетной обработки файлов, нет необходимости синхронизировать. Для кэша - это дополнительное использование.
После windows скептически отношусь ко всяким утилитам, поэтому желание сделать проще и использовать возможности системы. Но, на досуге, пожалуй, посмотрю на PSD )
Отказался от rsync в пользу tar, файлы (400-500Mb) заливаются быстрее, чем успеваю набрать пароль входа, а время сохранения на диск не критично.

pfg21, благодарю, попробую в качестве страховки.

Спасибо всем за помощь!

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
После windows скептически отношусь ко всяким утилитам
ну то в Windows =) Если пакеты есть на LaunchPad то проблем с ними в 99% нету и делают они именно то, что заявлено (UnixWay - делаю что-то одно, но делаю это хорошо)
Отказался от rsync в пользу tar
Проблемка в том,что rsync делает перезаписывает копию только тогда, когда это нужно... tar же даже при инкрементальном бэкапе
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28466
    • Просмотр профиля
UnixWay - делаю что-то одно, но делаю это хорошо
Скажи это systemd >.<
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Morisson

  • Гость
u-Art, а в чем смысл сохранения кэша браузера между сессиями? Чем больше его будешь использовать с сохранением, тем сильнее он будет разрастаться, тем дольше будет загрузка.
У меня так:
кэш браузера в tmpfs (вернее не кэш браузера, а весь кеш, вся папка ~/.cache и ~/.compose-cache)
sudo nano ~/.config/systemd/user/cache.serviceЕсли промежуточных папок нет- создаем.
Вставляем:
[Unit]
Description=Create cache in /tmp/%u

[Service]
Type=oneshot
RemainAfterExit=true

ExecStart=-/usr/bin/mkdir -m 0700 -p /tmp/%u
ExecStart=-/usr/bin/mkdir /tmp/%u/.cache
ExecStart=-/usr/bin/mkdir /tmp/%u/.compose-cache
ExecStart=-/usr/bin/rm -r %h/.cache
ExecStart=-/usr/bin/rm -r %h/.compose-cache
ExecStart=-/usr/bin/ln -s /tmp/%u/.cache %h/.cache
ExecStart=-/usr/bin/ln -s /tmp/%u/.compose-cache %h/.compose-cache

ExecStop=-/usr/bin/rm -r /tmp/%u
ExecStop=-/usr/bin/mkdir %h/.cache
ExecStop=-/usr/bin/mkdir %h/.compose-cache

[Install]
WantedBy=default.target

Затем запускаем юнит от обычного пользователя:
systemctl --user enable cache.service
Все, кэш, после перезапуска системд в оперативной памяти.
Проверим.
systemctl --user status cache.service
Профиль браузера у меня в tmpfs.
Для переноса профиля браузера в tmpfs как раз нужно сохранение между сессиями + резервное сохранение через определенное время.
Для этого лучше не городить огороды и использовать psd (profile-sync-daemon)

Здесь актуальное по его настройке. Установить сам пакет из ppa или реп Ubuntu (точно не помню)), остальное, как по-написанному
« Последнее редактирование: 24 Ноября 2017, 06:43:01 от Morisson »

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
кэш браузера в tmpfs (вернее не кэш браузера, а весь кеш, вся папка ~/.cache и ~/.compose-cache)
я сделал куда проще и без systemd (у нас ОС сама позаботилась о том, что бы у пользователя был свой RAM диск /run/user/$(id -u) ):
а потому
Код: (bash) [Выделить]
rm -rf ~/.cache
ln -s /run/user/$(id -u) ~/.cache
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28466
    • Просмотр профиля
Morisson, советую использовать install для подобных вещей.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.066 секунд. Запросов: 25.