11 сообщений / 0 новое
Последнее сообщение
k_mikhail
Аватар пользователя k_mikhail
Не в сети
Последнее посещение: 3 года 1 неделя назад
Регистрация: 26/09/2014 - 01:57
[13.1] Проблема добавления программ в автозагрузку

Приветствую! Делаю пока первые шаги в Linux и, в частности, в OpenSUSE 13.1 (рабочая среда XFCE 4.10).

Суть. Установил Pidgin IM через репозиторий, и хотел бы добавить в его в автозагрузку. Полистав Интернет, увидел, что автозагрузка в OpenSUSE описана достаточно фрагментарно, при том, что стандартный механизм с /etc/init.d/rc.local не работает. Вместо него предлагается работать с /after.local.

Исходно after.local имеет след. вид:


#! /bin/sh
#
# Copyright (c) 2010 SuSE LINUX Products GmbH, Germany. All rights reserved.
#
# Author: Werner Fink, 2010
#
# /etc/init.d/after.local
#
# script with local commands to be executed from init after all scripts
# of a runlevel have been executed.
#
# Here you should add things, that should happen directly after
# runlevel has been reached. Common environment
# variables for this are:
# RUNLEVEL -- The current system runlevel.
# PREVLEVEL -- The previous runlevel (useful after a runlevel switch).
#

После добавления в него пути запуска Pidgin стало так:


#! /bin/sh
#
# Copyright (c) 2010 SuSE LINUX Products GmbH, Germany. All rights reserved.
#
# Author: Werner Fink, 2010
#
# /etc/init.d/after.local
#
# script with local commands to be executed from init after all scripts
# of a runlevel have been executed.
#
# Here you should add things, that should happen directly after
# runlevel has been reached. Common environment
# variables for this are:
# RUNLEVEL -- The current system runlevel.
# PREVLEVEL -- The previous runlevel (useful after a runlevel switch).
/usr/bin/pidgin

Далее, следуя заветам учебников по уровням загрузки, выполнил chkconfig --level 35 after.local on. Однако, после перезагрузки Pidgin автоматически не запустился. Через YaST --> Управление службами нашёл after.local, но в неактивном состоянии (Inactive). Попытка сделать его Enabled\Active привело к сообщению об ошибке:


after.local.service
Loaded: loaded (/etc/init.d/after.local)
Active: failed (Result: exit-code) since Wed 2014-10-01 15:54:21 EEST; 4min 47s ago
Process: 2534 ExecStart=/etc/init.d/after.local start (code=exited, status=1/FAILURE)

Oct 01 15:54:21 linux-mk500 after.local[2534]: (Pidgin:2535): Gdk-CRITICAL **: IA__gdk_display_get_name: assertion 'GDK_IS_DISPLAY (display)' failed
Oct 01 15:54:21 linux-mk500 after.local[2534]: ** (Pidgin:2535): WARNING **: cannot open display: unset
Oct 01 15:54:21 linux-mk500 after.local[2534]: Pidgin 2.10.9
Oct 01 15:54:21 linux-mk500 systemd[1]: after.local.service: control process exited, code=exited status=1
Oct 01 15:54:21 linux-mk500 systemd[1]: Failed to start after.local.service.
Oct 01 15:54:21 linux-mk500 systemd[1]: Unit after.local.service entered failed state.

Warning: Unit file changed on disk, 'systemctl daemon-reload' recommended.


В какую сторону копать? Какие ошибки синтаксиса и понимания механизма с моей стороны, как пользователя? Скакать по дистрибутивам в поисках простоты взаимодействия пользователь --> система, не хочется. Хочется постичь механизм, используемый в SUSE, и научиться.

Спасибо!

Статус: 

Теги: 

Отредактировано: iwtke вкл 05/10/2014 - 19:57
iwtke
Аватар пользователя iwtke
Не в сети
Последнее посещение: 1 год 9 месяцев назад
Регистрация: 11/04/2014 - 19:09
xfce4 настройки в разделе

xfce4 настройки в разделе “Сеансы и запуск” – “Автозапуск приложений”

Русскоязычное сообщество openSUSE
Правильно заданный вопрос – половина ответа.

k_mikhail
Аватар пользователя k_mikhail
Не в сети
Последнее посещение: 3 года 1 неделя назад
Регистрация: 26/09/2014 - 01:57
Спасибо, помогло! Но здесь

Спасибо, помогло! Но здесь ещё вопрос -- как обойтись без GUI-средств, только за счёт консоли - т.е., как заставить автоматически стартовать некую программу (не демон) или user.based скрипт через консоль и какой при этом корректный синтаксис для .local файлов.

r3d
Аватар пользователя r3d
Не в сети
Последнее посещение: 2 года 2 месяца назад
Регистрация: 04/09/2012 - 16:52
~/.bash_profile

~/.bash_profile
Синтаксис шелл, обычный.

13.1 - Xfce
k_mikhail
Аватар пользователя k_mikhail
Не в сети
Последнее посещение: 3 года 1 неделя назад
Регистрация: 26/09/2014 - 01:57
Можно, плз, привести пару

Можно, плз, привести пару живых примеров _успешного_ добавления программы или скрипта в автозагрузку через after.local, после которого не будет сообщений об ошибках и система успешно обработает записи из этого файла после перезагрузки? Просто, чтобы на наглядном примере понять "физику" этого процесса, и в дальнейшем уже самому ориентироваться. Спасибо!

r3d
Аватар пользователя r3d
Не в сети
Последнее посещение: 2 года 2 месяца назад
Регистрация: 04/09/2012 - 16:52
Скрипты грузятся для юзера!

Скрипты грузятся для юзера! after.local откуда?

13.1 - Xfce
k_mikhail
Аватар пользователя k_mikhail
Не в сети
Последнее посещение: 3 года 1 неделя назад
Регистрация: 26/09/2014 - 01:57
Отсюда: /etc/init.d/after

Отсюда: /etc/init.d/after.local. Мне как раз и нужно понять все эти нюансы - автозапуска от пользователя и непосредственно системы, затем же и прошу дать пару-тройку примеров для наглядности. На основании этого можно будет сделать хорошую и познавательную заметку в разделе "Статьи" сайта. Тем более, что в OpenSUSE свой путь организации автозагрузки, отличный от /rc.local. У "соседей" вопросы автозагрузки более наглядно описаны, но, как я уже писал ранее - "Скакать по дистрибутивам в поисках простоты взаимодействия пользователь --> система, не хочется. Хочется постичь механизм, используемый в SUSE, и научиться." Уж простите моё нубство.

aluma
Аватар пользователя aluma
Не в сети
Последнее посещение: 2 года 11 месяцев назад
Регистрация: 01/12/2012 - 16:23
Это следствие внедрения

Это следствие внедрения systemd. Вот было решение http://avm-xandry.blogspot.com/2012/05/systemd-afterlocal.html
У мну пример не спрашивайте, юзаю линукс без оного нововведения.

ЗЫ. Дело хозяйское, но Pidgin подразумевает работающую сеть, очевидно нужна проверка этого факта или запускать после подьема сетевого интерфейса.

k_mikhail
Аватар пользователя k_mikhail
Не в сети
Последнее посещение: 3 года 1 неделя назад
Регистрация: 26/09/2014 - 01:57
В целом прояснилось --

В целом прояснилось -- спасибо автору блога xandry's blog Александру Митюнину -- направил ход мыслей и действия рук в правильное русло. Для GUI-приложений в /usr/share/applications/ лежат .desktop-файлы (e.g. pidgin.desktop), в которых в строке Exec указан путь исполняемого файла. Для того, чтобы та или иная программа автоматически стартовала при загрузке пользовательского профиля, необходимо скопировать её .desktop-файл в ~/.config/autostart. А systemd отвечает за загрузку сервисов (демонов) для _всей_системы_в целом_. А я, как выяснилось, в своих поисках истины не с той стороны начал копать. Smile

Maestro☭
Аватар пользователя Maestro☭
Не в сети
Последнее посещение: 2 недели 2 дня назад
Регистрация: 25/02/2014 - 18:00
Люди несколько раз тонко

Люди несколько раз тонко намекали тебе , что все что касается пользователя лежит в ~/ , но ты так рвался в бой..

k_mikhail
Аватар пользователя k_mikhail
Не в сети
Последнее посещение: 3 года 1 неделя назад
Регистрация: 26/09/2014 - 01:57
А не надо "тонко намекать".

А не надо "тонко намекать". Если человек обращается за помощью с целью научиться (рвался в бой Wink ), его надо буквально носом тыкать - "смотри сюда, попробуй сделать вот так (я же просил примеры, но не сложилось), почитай вот это". Причём по части "почитать" -- наилучший вариант -- это из сборника статей самого ресурса open-suse.ru. А этого как раз и нет - есть куда развивать ресурс. Это в качестве ответного "тонкого намёка" администратору ресурса. Wink Тему можно закрывать, спасибо.

Тема заблокирована