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


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

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

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

Оффлайн u-Art

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

Ubuntu 16.04

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4307
  • Capture the truth
    • Просмотр профиля
systemd:
Before=graphical.target
не?
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Nvidia 8500GT :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: 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

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


Пользователь добавил сообщение 22 Ноябрь 2017, 14:07:49:
ALiEN175, не. SystemD делает запуск служб в несколько потоков)
pfg21, а это каким боком? но разжую: у ТС служба стартует и он в курсе как добавлять ее в автозапуск. Задача: приостанавливать запуск остальных служб до завершения выполнения указаной.
« Последнее редактирование: 22 Ноябрь 2017, 14:42:17 от EvangelionDeath »
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн u-Art

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

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

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

Оффлайн EvangelionDeath

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

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

А потому дайте больше данных: что вы еще хотите хранить в рам диске? Какую задачу еще надо решить?
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн 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

  • Администратор
  • Старожил
  • *
  • Сообщений: 3276
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
После windows скептически отношусь ко всяким утилитам
ну то в Windows =) Если пакеты есть на LaunchPad то проблем с ними в 99% нету и делают они именно то, что заявлено (UnixWay - делаю что-то одно, но делаю это хорошо)
Отказался от rsync в пользу tar
Проблемка в том,что rsync делает перезаписывает копию только тогда, когда это нужно... tar же даже при инкрементальном бэкапе
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн AnrDaemon

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

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

Оффлайн Morisson

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 4588
    • Просмотр профиля
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

  • Администратор
  • Старожил
  • *
  • Сообщений: 3276
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
кэш браузера в tmpfs (вернее не кэш браузера, а весь кеш, вся папка ~/.cache и ~/.compose-cache)
я сделал куда проще и без systemd (у нас ОС сама позаботилась о том, что бы у пользователя был свой RAM диск /run/user/$(id -u) ):
а потому
Код: Bash
  1. rm -rf ~/.cache
  2. ln -s /run/user/$(id -u) ~/.cache
  3.  
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн AnrDaemon

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

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

 

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