LINUX.ORG.RU
ФорумAdmin

Как запустить приложение, которому нужна b-dus, как systemd сервис?

 , ,


0

1

Собственно, нужно запустить приложение из flathub как сервис. Сам flatpak для работы требует d-bus.

Есть вот такой ответ https://github.com/flatpak/flatpak/issues/4345#issuecomment-883522502, но я не понимаю что именно нужно делать.

Запускать именно как systemctl –user сервис пробовал, работает, но чтобы этим управлять нужно логиниться именно под конкретным юзером, что совсем неудобно. Поддержка такого сервиса в рабочем состоянии без активной сессии возможно только с помощью loginctl enable-linger для конкретного пользователя. После всех этих костылей нельзя сделать, например, systemctl restart …

Ответ на: комментарий от intelfx

Хорошо, я понимаю, задача звучит странно, а что поделать.
Запускаем с параметром –user но как этим управлять?
Юзер, от которого запускается сервис, имеет системный id и /sbin/nologin
Все что я смог придумать - это делать loginctl disable-linger и следом enable-linger для перезапуска.

nexcode ()
Ответ на: комментарий от nexcode

Все что я смог придумать - это делать loginctl disable-linger и следом enable-linger для перезапуска.

systemctl restart user@<UID> не? Делаешь loginctl enable-linger ровно один раз, потом не трогаешь.

Запускаем с параметром –user но как этим управлять?

В последних версиях systemd пользовательским инстансом можно рулить напрямую: systemctl -M <user>@.host --user.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от nexcode

Получается, это проблема дизайна самого flatpak, который не позволяет запускать запакованное в него как сервисы, что, кстати, без проблем позволяет делать snap.

То, что молотком нельзя закручивать саморезы, не является «проблемой дизайна» молотка. Flatpak для десктопных приложений. Для сервисов есть Docker/Podman. А снап это странный монстрик, который пытается усидеть на двух стульях сразу.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

systemctl restart user@<UID>

Не знал о таком синтаксисе, но, судя по команде, оно перезапустит все пользовательские сервисы, а не конкретный.

systemctl -M <user>@.host --user

А этим как пользоваться? Тут тоже только юзер указывается.

Есть возможность перезапустить/активировать именно конкретный сервис юзера?

nexcode ()
Последнее исправление: nexcode (всего исправлений: 1)
Ответ на: комментарий от nexcode

А этим как пользоваться?

Подумать головой. systemctl принимает подкоманды вида systemctl [--system|--user] КОМАНДА АРГУМЕНТЫ. Предполагается, что команду ты допишешь сам.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

То, что молотком нельзя закручивать саморезы, не является «проблемой дизайна» молотка.

Но у придумывателей спецмолотков для вкручивания саморезов явно какие-то проблемы.

token_polyak ()
Ответ на: комментарий от intelfx

Флатпак, героически решающий решенную двадцать лет тому назад проблему распространения ПО - такое же ненужно.

token_polyak ()
Последнее исправление: token_polyak (всего исправлений: 4)
Ответ на: комментарий от token_polyak

решенную двадцать лет тому назад проблему распространения ПО

С удовольствием послушаю как в Linux 20 лет назад решили проблему запуска десктопного ПО в любом дистрибутиве без перекомпиляции под конкретный дистрибутив.

Творения Loki Games(которые хоть как-то к этому приблизились), которые сейчас не запускаются в современном линуксе ввиду полнейшего отсыхания OSS не предлагать.

P.S. Лично я сам не в восторге от Snap/Flatpak - всегда ловил грабли с ними, пару раз пользовался AppImage - вроде нормально

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 3)
Ответ на: комментарий от Pinkbyte

в любом дистрибутиве без перекомпиляции под конкретный дистрибутив.

Не нужно, ибо ПО для конкретного дистрибутива пакетят его мейнтейнеры. А проприетарщики пусть извращаются.

token_polyak ()
Последнее исправление: token_polyak (всего исправлений: 2)
Ответ на: комментарий от token_polyak

Флатпак, героически решающий решенную двадцать лет тому назад проблему распространения ПО

Она безусловно «решённая», но это решение многих не устраивает. Флатпак решает её повторно другим методом.

(Для протокола, я не в числе этих людей. Но я отдаю себе отчёт, что они существуют.)

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от token_polyak

ПО для конкретного дистрибутива пакетят его мейнтейнеры

Давай вернемся к этому вопросу через 10 лет - я думаю у тебя категоричности поубавится(если ты вообще еще будешь линуксом пользоваться). Мне такое ожидание помогло, рекомендую...

Pinkbyte ★★★★★ ()
Ответ на: комментарий от intelfx

Задачу решать всё равно надо, но никто не говорит что флатпак делает ее единственно верным способом.

Да, позиция когда если твое ПО - не лютое говно, то придут добрые мэйнтэйнеры ВСЕХ ДИСТРИБУТИВОВ и всё опакетят - она всё еще рабочая.

Но с увеличением объемов этого самого ПО - количество мэйнтэйнеров пропорционально чего-то не растет. И если бинарные дистры еще держатся, то открою Америку - у source-based ребят(Gentoo, как пример) уже давно от объемов работы рвется пердак

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от intelfx

Да я скорее не тебе лично возражаю - у тебя по треду позиция более-менее взвешенная(что намекает на то, что ты навернул говнеца как минимум с одной из новомодных реализаций, но при этом понимаешь что серебряной пули, которая удовлетворит всех, как обычно нет).

Pinkbyte ★★★★★ ()
Ответ на: комментарий от intelfx

Они засунули туда авторенью сертификата без необходимости создавать задачу в кроне или системд таймерах. Скорее всего со снапом это им было сделать легче. Но по факту я сам не в восторге от того, что по дефолту во имя простой, казалось бы задачи, выбрали такой путь. Но, опять таки, это путь меньшего сопротивления, с их точки зрения.

nexcode ()
Ответ на: комментарий от token_polyak

Не нужно, ибо ПО для конкретного дистрибутива пакетят его мейнтейнеры

У каждого человека на определенном сроке использования линукса есть вот этот этап - когда пишешь такой бред и веришь в него. И у меня было.

Потом это проходит.

James_Holden ()
Ответ на: комментарий от nexcode

В моем случае флатпак - это тоже путь наименьшего сопротивления. Или я пересобираю огромный пакет с кучей зависимостей или пытаюсь запустить это из флатпака. А бизнес хочет, чтобы работало уже сегодня…

nexcode ()
Ответ на: комментарий от fornlr

Поставь тег Flatpak. В нём проблема.

Ну как всегда.

Проблема в странных людях творящих шизуху, а виноват флатпак. Что-то мне это напоминает. Лет 15 назад когда я еще пытался пихать людям линукс - была такая же ситуация. Ими всегда придумывался полностью шизоидный юзкейс, который конечно же не реализуется в линуксе. И все - заявлялось что линукс фуфло.

James_Holden ()
Ответ на: комментарий от Pinkbyte

С удовольствием послушаю как в Linux 20 лет назад решили проблему запуска десктопного ПО в любом дистрибутиве без перекомпиляции под конкретный дистрибутив.

Ну, 20 конечно нет, но в 2013 году решили. Это решение называется steam, но у него есть побочные эффекты.

Flatpak появился уже позже

Aceler ★★★★★ ()
Ответ на: комментарий от Aceler

Это решение называется steam

Для чего-то кроме игр непригоден, решение находится под контролем одной корпорации(ссылки на сборочные скрипты рантайма и клиента в студию в противном случае). А так да, решение конечно. Только не той задачи, о которой шла речь. Точнее - всего лишь ее части...

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Aceler

Blender нормально ставится.

А еще krita и другие программы, но сам steam очень удобно держать в flatpak, что бы всякие нативные порты не срали в хомяк. Да и управлять переменными окружения для него очень удобно через flatpak

SR_team ★★★★★ ()
Ответ на: комментарий от Pinkbyte

С удовольствием послушаю как в Linux 20 лет назад решили проблему запуска десктопного ПО в любом дистрибутиве без перекомпиляции под конкретный дистрибутив.

Без перекомпиляции — а с чего у тебя это ограничение появилось? Убери его и всё.

anonymous ()
Ответ на: комментарий от nexcode

без необходимости создавать задачу в кроне или системд таймерах

Вот и выросло поколение долбаных индусов. Именно поэтому я начал искоса смотреть на certbot. Уж лучше навернуть говна в виде acme.sh

Twissel ★★★★★ ()
Последнее исправление: Twissel (всего исправлений: 1)
Ответ на: комментарий от token_polyak

Например, распространение бинарников автором программы 8-)

Обязательность сборки бинарников сторонним дядей есть прямое наоушение принципов свободы. Этот дядя вам ничего не обязан и может просто отказаться собирать вашу программу по надуманному поводу. А у систем с бинарной совместимостью разработчиков и у пользователей есть полная свобода распространения и использования программ без влияния мнения авторов ОС/мейнтейнеров.

Репозитории/мейнтейныеры – закрытая модель разработки ПО без каких либо гарантий принятия в репозиторий. У проприетарщиков гарантий и то больше, у них хотя бы договоры и юридические обязанности есть.

X512 ★★ ()
Ответ на: комментарий от anonymous

Без перекомпиляции — а с чего у тебя это ограничение появилось?

Перекомпиляция на разных дистрибутивах часто требует внесения изменений в исходники, что не доступно каждому рядовому пользователю.

X512 ★★ ()
Ответ на: комментарий от anonymous

Без перекомпиляции — а с чего у тебя это ограничение появилось? Убери его и всё.

Потому что среднестатистический автор ПО обычно хочет собрать релиз один раз для платформы. Linux в его понимании - платформа. А если дробить Linux на 100500 маленьких платформ(Ubuntu 16.04, Ubuntu 18.04, Debian [oldold|old|]stable] и т.д.), то среднестатистический автор говорит либо «ой, да пошло оно всё в жопу», либо поддерживает только свой любимый дистрибутив «икс».

Можно тысячу срачей подымать о том насколько это всё неправильно с нашей точки зрения, но гребаная реальность, данная нам в ощущениях почему-то от этого не меняется, вот удивительно-то...

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Twissel

Да да да, вы абсолютно правы, плюсом выкинем системд и будем писать старт-стоп скрипты, ну как писать, копипастить из инета и править, получим солянку всякого разного в разном стиле с довеском багов, но зато по православному, ага.

nexcode ()
Ответ на: комментарий от Twissel

А следом избавимся и от firewalld в угоду только одному православному иптэйблс, но потом для решения задач включения обычного роутинга админы будут копипастить непонятные правила и вставлять их в консоль сразу на продакшен.

nexcode ()
Ответ на: комментарий от nexcode

Ничего, мал'чик, с возрастом это пройдёт.

Тем более, что ты нихрена не понял: я, если что, имел ввиду, что те, кто запихнул certbot в snap это говноеды.

systemd это уже фактически объективная реальность со своими плюсами и минусами, никуда не деться.

Twissel ★★★★★ ()
Ответ на: комментарий от nexcode

Люди полезное дело сделали

Все в жизни относительно, иногда субъективно.

ИМХО, тянуть в ОС еще одну подсистему ради certbot избыточно.

Для прикладных аппликух есть AppImage.

Twissel ★★★★★ ()