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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Запуск приложения при старте системы с таймаутом запуска  (Прочитано 7799 раз)

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

Оффлайн darwetra

  • Автор темы
  • Участник
  • *
  • Сообщений: 131
    • Просмотр профиля
Подскажите, как настроить автозапуск приложения после старта системы через определенное время, секунд через 20-30?
Зачем нужно это? А вот есть программка Variety, автоматический сменщик, загрузчик и менеджер обоев, она же и часы на рабочем столе. Время эта программа берет из системного, и берет в тот момент, когда системное время еще не установилось, а используется время из биоса. Через несколько секунд после загрузки время в трее становится верным, а вот Variety в течении часа показывает неверное время, потому как успела загрузиться с твердотельного диска до того, как Ubuntu выставила верное время. Через графический интерфейс таких настроек я не нашел.
В биосе время редактировать нежелательно, так как параллельно на компьютере установлена Windows, также активно используемая.

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11313
  • Нетолерантный социопат
    • Просмотр профиля
Вариант 1 - самописный скрипт в автзапуске
что-то типа
#!/usr/bin/env bash
sleep 30 &&
your_progremm &
exit 0
Дать права на исполнение, добавить в автозапуск

Вариант 2  - таймер + сервис systemd
https://www.freedesktop.org/software/systemd/man/systemd.timer.html
Создаёте в каталоге ~/.config/systemd/user таймер с теми условиями, которые нужны,
Создаёте в каталоге ~/.config/systemd/user юнит, который будет запускаться этим таймером.
Запускаете таймер.
systemctl --user start your.timer
systemctl --user enable your.timer

Таймер будет запускать то, что указано, через указанное время после входа пользователя, от имени которого запущен таймер, или согласно другому условию, которое будет в нём прописано

В качестве примера - таймер, который запускает демон transmission через 2 минуты поле старта
transmission.timer
[Unit]
Description=transmission-daemon start timer

[Timer]
OnBootSec=120
Unit=transmission.service

[Install]
WantedBy=timers.target

transmission.service
[Unit]
Description=Transmission BitTorrent Daemon
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/transmission-daemon --pid-file /home/haron/.run/transmission.pid -f --log-error --config-dir /home/haron/.config/transmission

ExecReload=/bin/kill -s HUP $MAINPID

[Install]
WantedBy=default.target

Имхо, абсолютно ничего сложного.
« Последнее редактирование: 12 Августа 2017, 16:27:26 от Haron Prime »

Оффлайн darwetra

  • Автор темы
  • Участник
  • *
  • Сообщений: 131
    • Просмотр профиля
Спасибо, пробовал первый способ и эти https://help.ubuntu.ru/wiki/%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B0_%D0%B0%D0%B2%D1%82%D0%BE%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0 рекомендации, но пока что не получается. Буду еще пробовать.
Пока что просто отключил у Variety автозапуск при старте системы и запускаю вручную.

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
darwetra,
Покажите вывод
sudo updatedb; locate -i autostart | sort

Оффлайн darwetra

  • Автор темы
  • Участник
  • *
  • Сообщений: 131
    • Просмотр профиля
arh@arh-P35-S3:~$ sudo updatedb; locate -i autostart | sort
[sudo] пароль для arh:
/etc/xdg/autostart
/etc/xdg/autostart/a11y-profile-manager-indicator-autostart.desktop
/etc/xdg/autostart/at-spi-dbus-bus.desktop
/etc/xdg/autostart/classicmenu-indicator.desktop
/etc/xdg/autostart/clipit-startup.desktop
/etc/xdg/autostart/deja-dup-monitor.desktop
/etc/xdg/autostart/gnome-keyring-pkcs11.desktop
/etc/xdg/autostart/gnome-keyring-secrets.desktop
/etc/xdg/autostart/gnome-keyring-ssh.desktop
/etc/xdg/autostart/gnome-screensaver.desktop
/etc/xdg/autostart/gnome-software-service.desktop
/etc/xdg/autostart/gnome-user-share-obexpush.desktop
/etc/xdg/autostart/gnome-user-share-webdav.desktop
/etc/xdg/autostart/gsettings-data-convert.desktop
/etc/xdg/autostart/indicator-application.desktop
/etc/xdg/autostart/indicator-bluetooth.desktop
/etc/xdg/autostart/indicator-datetime.desktop
/etc/xdg/autostart/indicator-keyboard.desktop
/etc/xdg/autostart/indicator-messages.desktop
/etc/xdg/autostart/indicator-power.desktop
/etc/xdg/autostart/indicator-printers.desktop
/etc/xdg/autostart/indicator-session.desktop
/etc/xdg/autostart/indicator-sound.desktop
/etc/xdg/autostart/nautilus-autostart.desktop
/etc/xdg/autostart/nm-applet.desktop
/etc/xdg/autostart/nvidia-settings-autostart.desktop
/etc/xdg/autostart/onboard-autostart.desktop
/etc/xdg/autostart/orca-autostart.desktop
/etc/xdg/autostart/polkit-gnome-authentication-agent-1.desktop
/etc/xdg/autostart/print-applet.desktop
/etc/xdg/autostart/pulseaudio.desktop
/etc/xdg/autostart/unity-fallback-mount-helper.desktop
/etc/xdg/autostart/unity-settings-daemon.desktop
/etc/xdg/autostart/update-notifier.desktop
/etc/xdg/autostart/user-dirs-update-gtk.desktop
/etc/xdg/autostart/vino-server.desktop
/etc/xdg/autostart/zeitgeist-datahub.desktop
/home/arh/.config/autostart
/home/arh/.config/autostart/my-weather-indicator-autostart.desktop
/home/arh/.config/autostart/remmina-applet.desktop
/opt/extras.ubuntu.com/my-weather-indicator/share/my-weather-indicator/my-weather-indicator-autostart.desktop
/usr/lib/virtualbox/VBoxAutostart
/usr/share/app-install/desktop/geary:geary-autostart.desktop
/usr/share/app-install/desktop/italc-client:italc-client-autostart.desktop
/usr/share/app-install/desktop/nemo:nemo-autostart.desktop
/usr/share/gdm/autostart
/usr/share/gdm/autostart/LoginWindow
/usr/share/gdm/autostart/LoginWindow/libcanberra-ready-sound.desktop
/usr/share/gdm/greeter/autostart
/usr/share/gdm/greeter/autostart/xbrlapi.desktop
/usr/share/gnome/autostart
/usr/share/gnome/autostart/libcanberra-login-sound.desktop
/usr/share/indicator-application/upstart/xdg/autostart
/usr/share/indicator-application/upstart/xdg/autostart/indicator-application.desktop
/usr/share/lightdm/guest-session/skel/.config/autostart
/usr/share/lightdm/guest-session/skel/.config/autostart/guest-session-startup.desktop
/usr/share/upstart/xdg/autostart
/usr/share/upstart/xdg/autostart/at-spi-dbus-bus.desktop
/usr/share/upstart/xdg/autostart/indicator-bluetooth.desktop
/usr/share/upstart/xdg/autostart/indicator-datetime.desktop
/usr/share/upstart/xdg/autostart/indicator-keyboard.desktop
/usr/share/upstart/xdg/autostart/indicator-messages.desktop
/usr/share/upstart/xdg/autostart/indicator-power.desktop
/usr/share/upstart/xdg/autostart/indicator-printers.desktop
/usr/share/upstart/xdg/autostart/indicator-session.desktop
/usr/share/upstart/xdg/autostart/indicator-sound.desktop
/usr/share/upstart/xdg/autostart/unity-settings-daemon.desktop
arh@arh-P35-S3:~$
На данный момент у меня содержимое системных файлов находится в исходном состоянии.

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Cкопируйте в  ~/.config/autostart desktop-файл Variety из /usr/share/applications или ~/.local/share/applications
И задержки никакой не нужно т.к. в  ~/.config/autostart программы запускаются на последнем этапе загрузки (логин пользователя и загрузка DE).

Пользователь добавил сообщение 12 Августа 2017, 20:14:24:
Найти desktop-файл Variety:
locate -i variety | grep '\.desktop'
« Последнее редактирование: 12 Августа 2017, 20:14:24 от renzrv »

Оффлайн ПлутАрх

  • Участник
  • *
  • Сообщений: 220
    • Просмотр профиля
Автоматически запускаемые приложения
sh -c 'sleep 25 && variety'
« Последнее редактирование: 12 Августа 2017, 20:26:35 от ПлутАрх »

Оффлайн gurfunkel

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Я в аналогичном случае делал так, вызываете на редактирование файл /etc/rc.local, вставляете sleep 30, потом вставляете вашу команду.

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3163
    • Просмотр профиля
А почему не воспользоваться командой at в скрипте из автозапуска? Она именно для этого.
Пётр.

Оффлайн darwetra

  • Автор темы
  • Участник
  • *
  • Сообщений: 131
    • Просмотр профиля
потом вставляете вашу команду.
В том у меня и проблема, что с собственными командами туговато. Я могу только как прапорщик из анекдота: "Поезд, СТОЙ! Раз-Два!".

Оффлайн DimanBG

  • Старожил
  • *
  • Сообщений: 1316
    • Просмотр профиля
А что в Юнини в самой Автозагрузке (или как она там называется в Настройках, Параметрах) нельзя параметр добавить запускаемому приложению, нужно руками лезть в конфиг или писать скрипт, юнит?

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
darwetra,
locate -i variety | grep '\.desktop'
вывод команды есть?

Оффлайн darwetra

  • Автор темы
  • Участник
  • *
  • Сообщений: 131
    • Просмотр профиля
Вот вывод:
arh@arh-P35-S3:~$ locate -i variety | grep '\.desktop'
/usr/share/applications/variety-slideshow.desktop
/usr/share/applications/variety.desktop
arh@arh-P35-S3:~$

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Добавление в автозапуск:
cp /usr/share/applications/variety.desktop ~/.config/autostartперезагружайте и проверяйте автостарт variety

Оффлайн darwetra

  • Автор темы
  • Участник
  • *
  • Сообщений: 131
    • Просмотр профиля
Добавление в автозапуск:
Код: [Выделить]

cp /usr/share/applications/variety.desktop ~/.config/autostart

перезагружайте и проверяйте автостарт variety
Variety в этом случае просто запускается сразу же после загрузки ОС, когда еще ОС не выставила свое правильное время, нет задержки загрузки. Изменение очередности загрузок не помогает, Variety все равно успевает загрузиться раньше, чем Ubuntu определит местоположение и установит правильное время.
Тут еще проблема в том, что время в нашем регионе решением местных властей сдвинуто на час назад, а на серверах времени это местное решение, видимо, не учитывается. Ручная установка времени почему-то не помогает, после загрузки Windows с часами чехорда начинается. Пока что запускаю Variety вручную, это решает проблему, но все равно хочется сделать все по уму.

 

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