Как в иксах сделать автозапуск с завершением?

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

MiK13
Сообщения: 1289
ОС: Linux Debian

Как в иксах сделать автозапуск с завершением?

Сообщение MiK13 »

Я уже спрашивал, в другой теме, Как установить нормальное разрешение монитора?, сделал через автозапуск, это работает. Но возникла задача посложнее.
Система для некоторого оператора, обслуживающего установку сбора данных. Нужно, чтобы после ввода имени и пароля запустилась программа, с которой он будет работать. Причём, желательно, чтобы кроме этой программы он не мог ничего запустить. Ну и чтобы после завершения работы этой программы завершился и сеанс.
Пока я для завершение сеанса просто добавил в скрипт запуска АРМа команду skill xfce4-session. Но, может быть, есть более "правильный" способ?
Раньше, до того, как стали использовать иксы, я просто звменял в файле /etc/passwd элемент /bin/bash на нужную команду (среди которых были и /sbin/halt и /sbin/reboot)
Потом стал использовать в скрипте запуска команду xinit ./arm_operatora
Но другие разработчики заявили, что нужен полноценный оконный менеджер и поэтому решили ставить полноценные иксы.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21432
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как в иксах сделать автозапуск с завершением?

Сообщение Bizdelnick »

MiK13 писал(а):
02.08.2016 18:57
другие разработчики заявили, что нужен полноценный оконный менеджер и поэтому решили ставить полноценные иксы.

Иксы и без оконного менеджера вполне полноценны. А оконный менеджер вполне полноценен без xfce4-session. Так что опишите подробнее, что конкретно нужно.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
MiK13
Сообщения: 1289
ОС: Linux Debian

Re: Как в иксах сделать автозапуск с завершением?

Сообщение MiK13 »

Bizdelnick писал(а):
02.08.2016 19:01
Так что опишите подробнее, что конкретно нужно.

Это, пожалуй, одна из наиболее сложных задач :) Но если кратко, то так.
При включении компьютера необходимо ввести имя и пароль. После этого должна запуститься основная программа (ещё ряд программ-демонов запускается через /etc/rc.local). Основная программа написана на Qt (сейчас версии 5.7) и работает под иксами.
Завершение работы программы должно приводить к новому запросу имени и пароля. Или к выключению компьютера (или его перезагрузке). Кроме того, может понадобиться выполнить такие операции, как добавление или удаление пользователя, смена его пароля, копирование собранных данных на внешний носитель. Причём, работать с компьютером будут люди, для которых значение слова "линукс" менее понятно, чем "линекс".
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21432
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как в иксах сделать автозапуск с завершением?

Сообщение Bizdelnick »

MiK13 писал(а):
03.08.2016 14:49
Кроме того, может понадобиться выполнить такие операции, как добавление или удаление пользователя, смена его пароля, копирование собранных данных на внешний носитель.

А этим кто будет заниматься? Тот же пользователь, что работает с «основной программой» или админ? Можно ведь пользователю дать одну программу, а админу (если его голая консоль не устраивает) полноценную сессию.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
MiK13
Сообщения: 1289
ОС: Linux Debian

Re: Как в иксах сделать автозапуск с завершением?

Сообщение MiK13 »

Bizdelnick писал(а):
03.08.2016 14:59
MiK13 писал(а):
03.08.2016 14:49
Кроме того, может понадобиться выполнить такие операции, как добавление или удаление пользователя, смена его пароля, копирование собранных данных на внешний носитель.

А этим кто будет заниматься? Тот же пользователь, что работает с «основной программой» или админ?
Не "тот же пользователь", но и не админ. Которого, скорее всего, у заказчика и не будет.
Bizdelnick писал(а):
03.08.2016 14:59
Можно ведь пользователю дать одну программу
У меня и был вопрос "КАК?" В скрипт, запускаемый через ~/.config/autostart/FILE.desktop? А как ЗАВЕРШИТЬ сессию? Через skiill нормально?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21432
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как в иксах сделать автозапуск с завершением?

Сообщение Bizdelnick »

MiK13 писал(а):
03.08.2016 18:13
У меня и был вопрос "КАК?"

Вопрос был недостаточно конкретный, теперь более или менее прояснилось. Если расскажете, зачем понадобился оконный менеджер, станет окончательно ясно.

MiK13 писал(а):
03.08.2016 18:13
В скрипт, запускаемый через ~/.config/autostart/FILE.desktop?

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

MiK13 писал(а):
03.08.2016 18:13
А как ЗАВЕРШИТЬ сессию? Через skiill нормально?

Смотря что Вы понимаете под сессией. Если xfce4-session, то я хоть убейте не понимаю, зачем он понадобился. Оконный менеджер можно и из скрипта запустить.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Goodvin
Ведущий рубрики
Сообщения: 4333
Статус: ⚝⚠⚒⚑⚖☭☞☣☤&

Re: Как в иксах сделать автозапуск с завершением?

Сообщение Goodvin »

MiK13 писал(а):
03.08.2016 14:49
Bizdelnick писал(а):
02.08.2016 19:01
Так что опишите подробнее, что конкретно нужно.

Это, пожалуй, одна из наиболее сложных задач :) Но если кратко, то так.
При включении компьютера необходимо ввести имя и пароль. После этого должна запуститься основная программа (ещё ряд программ-демонов запускается через /etc/rc.local). Основная программа написана на Qt (сейчас версии 5.7) и работает под иксами.
Завершение работы программы должно приводить к новому запросу имени и пароля. Или к выключению компьютера (или его перезагрузке). Кроме того, может понадобиться выполнить такие операции, как добавление или удаление пользователя, смена его пароля, копирование собранных данных на внешний носитель. Причём, работать с компьютером будут люди, для которых значение слова "линукс" менее понятно, чем "линекс".

То есть Вам нужен обычный "режим киоска"?
А готовые решения не смотрели?

Например, вот это:
http://porteus-kiosk.org/

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

Да и в поиск Вам сходить не помешает:
[Решено]Как в xfce ограничить пользователя?

И вообще:
https://wiki.xfce.org/howto/kiosk_mode
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21432
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как в иксах сделать автозапуск с завершением?

Сообщение Bizdelnick »

Goodvin писал(а):
03.08.2016 19:09
То есть Вам нужен обычный "режим киоска"?

Я так понял, нет: пользовательские данные должны сохраняться. Или я неправ?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
MiK13
Сообщения: 1289
ОС: Linux Debian

Re: Как в иксах сделать автозапуск с завершением?

Сообщение MiK13 »

Bizdelnick писал(а):
03.08.2016 18:23
MiK13 писал(а):
03.08.2016 18:13
А как ЗАВЕРШИТЬ сессию? Через skiill нормально?

Смотря что Вы понимаете под сессией. Если xfce4-session, то я хоть убейте не понимаю, зачем он понадобился. Оконный менеджер можно и из скрипта запустить.
Немного отклонюсь от основной темы.
Первоначально ту измерительную систему, которую мы до сих пор пытаемся приспособить к разным измерительным устройствам, я делал без иксов, используя svgalib. Потом решили использовать иксы. И начальник узнал новое слово: "QT". И сказал: "ВСЁ БУДЕМ ДЕЛАТЬ НА QT4!!!". Я, в принципе, не был против Qt, но предполагал, что он будет использован для той части программного комплекса, который нуждается в тесном взаимодействии с оператором. Благодаря наличию большого набора различных компонентов. При этом предполагал, что будет целый набор программ, которые разрабатываются независимо и используют общие данные в разделяемой памяти, структура которых описана в общем .h файле. Но так как разработчиком основной программы был не я, то было решено делать её в виде одного модуля.
Недавно узнали о выходе новой версии, Qt 5.7, в которой появились новые компоненты: вывод графиков, работа с Modbus, работа с CAN. И решили: "Будем использовать его!". Но оказалось, что он есть только для 64-битного линукса. И нужен Debian 8. Так как на компьютере, который будет передаваться заказчику, стоит диск SSD уже довольно большой ёмкости (32 ГБ), то решили поставить "полноценный" Linux (до этого ставили минимум, а потом доставляли иксы).
Я предложил не запускать GDM (точнее, сейчас там lightdm), а после обычного логирования запускать скрипт, который будет запускать основную программу через xinit. Но этот вариант почему-то (теперь) не устроил. Хотя в предыдущей версии программа запускается из скрипта (который запускается через /etc/rc.local), в котором сначала запускается icevm&, а потом основная программа.
Поэтому я и решил спросить, как проще сделать, чтобы при вводе имени и пароля в lightdm запускалась программа и после окончания её работы сессия заканчивалась.
А времени до сдачи осталось очень мало, и ещё многое не работает в основной программе.
И я подозреваю, что придётся отказаться от Jessie и вернуться на Squeeze Так как в Jessie программа работает значительно медленнее (что-то связанное с OpenGL), а начальник это трактует как "программа вообще не работает".
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21432
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как в иксах сделать автозапуск с завершением?

Сообщение Bizdelnick »

Не понял, зачем Вы это всё тут написали, при этом так и не ответив на простой и конкретный вопрос: с какой целью понадобился оконный менеджер? Спрашиваю просто потому что подозреваю, что на самом деле хотят не WM, а что-то совсем другое. А решение задачи, как Вы её описали, «в лоб» очень простое: пропишите в $HOME/.xinitrc

Код: Выделить всё

xfwm4 --daemon
your_program
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21432
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как в иксах сделать автозапуск с завершением?

Сообщение Bizdelnick »

MiK13 писал(а):
03.08.2016 21:02
предполагал, что будет целый набор программ, которые разрабатываются независимо и используют общие данные в разделяемой памяти, структура которых описана в общем .h файле. Но так как разработчиком основной программы был не я, то было решено делать её в виде одного модуля.

Из этих двух зол второе определённо является меньшим.

MiK13 писал(а):
03.08.2016 21:02
оказалось, что он есть только для 64-битного линукса.

Что-что?

MiK13 писал(а):
03.08.2016 21:02
в предыдущей версии программа запускается из скрипта (который запускается через /etc/rc.local), в котором сначала запускается icevm&, а потом основная программа.

Ужасно. Есть же nodm.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: Как в иксах сделать автозапуск с завершением?

Сообщение s.xbatob »

Как - очень просто. В домашнем каталоге юзера создаёте файл .xinitrc, который и будет запускаться вместо сессии. По завершении этого скрипта завершится и сессия.
Настоящий киоск делается чуть посложнее: вероятно надо написать (точнее найти) wrapper, который делает из x сервера unit для systemd, ну и свои units написать для запускаемых программ.
Зачем в обоих случаях управление пользователями, window manager,.. - мне тоже непонятно.
Вдогонку: переезжайте на qt5. Это не так кроваво, как было раньше, а qt4 уже obsoleted, и поддерживается не слишком хорошо
Спасибо сказали:
MiK13
Сообщения: 1289
ОС: Linux Debian

Re: Как в иксах сделать автозапуск с завершением?

Сообщение MiK13 »

Bizdelnick писал(а):
03.08.2016 22:07
подозреваю, что на самом деле хотят не WM, а что-то совсем другое. А решение задачи, как Вы её описали, «в лоб» очень простое: пропишите в $HOME/.xinitrc

Код: Выделить всё

xfwm4 --daemon
your_program
Вполне может быть, что это и есть то, что нам надо. Сегодня попробую это проверить.
Bizdelnick писал(а):
03.08.2016 22:55
MiK13 писал(а):
03.08.2016 21:02
предполагал, что будет целый набор программ, которые разрабатываются независимо и используют общие данные в разделяемой памяти, структура которых описана в общем .h файле. Но так как разработчиком основной программы был не я, то было решено делать её в виде одного модуля.
Из этих двух зол второе определённо является меньшим.
И почему именно?
Если в процессе приёма данных возникает какая-то ошибка, то вылетает ВСЯ программа. И найти место, и причину, по которой она вылетела, довольно сложно, особенно, если там работает несколько параллельных процессор. Если же приёмом данных занимается отдельная программа, то отладить её гораздо проще. Более того, если изменилось оборудование, с которым она обменивается, то достаточно изменить только эту программу. Более того, это могут сделать совсем другие люди, им надо знать только протокол обмена.
Bizdelnick писал(а):
03.08.2016 22:55
MiK13 писал(а):
03.08.2016 21:02
оказалось, что он есть только для 64-битного линукса.
Что-что?
Меня Qt в данный момент не интересует (нравится FLTK). Занимался другой человек. И он сказал, что в новом Qt появились компоненты для работы с CAN и Modbus, и ещё для построения графиков в реальном времени. Но нужен 8-й Debian. Скачал новый Qt, но он оказался 5.5, стал разбираться и заявил, что 5.7 есть только в 64-битном варианте. Мне это показалось странным, так читал, что есть его исходники, но разбираться не стал.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21432
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как в иксах сделать автозапуск с завершением?

Сообщение Bizdelnick »

MiK13 писал(а):
04.08.2016 10:17
И почему именно?
Если в процессе приёма данных возникает какая-то ошибка, то вылетает ВСЯ программа. И найти место, и причину, по которой она вылетела, довольно сложно, особенно, если там работает несколько параллельных процессор. Если же приёмом данных занимается отдельная программа, то отладить её гораздо проще. Более того, если изменилось оборудование, с которым она обменивается, то достаточно изменить только эту программу. Более того, это могут сделать совсем другие люди, им надо знать только протокол обмена.

Всё так. Но общая память — это даже не грабли, это минное поле.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
MiK13
Сообщения: 1289
ОС: Linux Debian

Re: Как в иксах сделать автозапуск с завершением?

Сообщение MiK13 »

Bizdelnick писал(а):
04.08.2016 10:41
Всё так. Но общая память — это даже не грабли, это минное поле.

Ну, если смотреть по ноги, то грабли опасности не предсавляют :)
А если в минном поле проложены дорожки между минами и каждая мина обозначена флажком, то и ходить по нему можно довольно безопасно.


А вот с $HOME/.xinitrc у меня пока почему-то не получается :(
Хотя, по идее, это именно то, что нам нужно. Но буду дальше пробовать
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21432
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как в иксах сделать автозапуск с завершением?

Сообщение Bizdelnick »

MiK13 писал(а):
04.08.2016 12:50
А если в минном поле проложены дорожки между минами и каждая мина обозначена флажком, то и ходить по нему можно довольно безопасно.

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

MiK13 писал(а):
04.08.2016 12:50
с $HOME/.xinitrc у меня пока почему-то не получается

Что конкретно делаете? Там вроде бы нечему «не получаться».
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Goodvin
Ведущий рубрики
Сообщения: 4333
Статус: ⚝⚠⚒⚑⚖☭☞☣☤&

Re: Как в иксах сделать автозапуск с завершением?

Сообщение Goodvin »

Bizdelnick писал(а):
03.08.2016 19:17
Goodvin писал(а):
03.08.2016 19:09
То есть Вам нужен обычный "режим киоска"?

Я так понял, нет: пользовательские данные должны сохраняться. Или я неправ?

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

Спасибо сказали:
Аватара пользователя
Goodvin
Ведущий рубрики
Сообщения: 4333
Статус: ⚝⚠⚒⚑⚖☭☞☣☤&

Re: Как в иксах сделать автозапуск с завершением?

Сообщение Goodvin »

MiK13 писал(а):
04.08.2016 10:17
Но нужен 8-й Debian. Скачал новый Qt, но он оказался 5.5, стал разбираться и заявил, что 5.7 есть только в 64-битном варианте. Мне это показалось странным, так читал, что есть его исходники, но разбираться не стал.

Странное Вы пишете, однако.

Смотрим на официальный сайт:
http://doc.qt.io/qt-5/supported-platforms.html

Код: Выделить всё

Qt 5.7 > Supported Platforms

Platform                                 Compiler                        Notes
Linux/X11
openSUSE 13.1 (64-bit)                     GCC 4.8.1                        SUSE Linux 20130909
Red Hat Enterprise Linux 6.6 (64-bit)             GCC 4.9.1                        Red Hat 4.9.1-10 20140922
Ubuntu 14.04 (64-bit)                         GCC 4.6.3                        Ubuntu/Linaro 4.6.3-1ubuntu5
(Linux 32/64-bit)                             GCC 4.8.1, GCC 4.9.1
Спасибо сказали:
MiK13
Сообщения: 1289
ОС: Linux Debian

Re: Как в иксах сделать автозапуск с завершением?

Сообщение MiK13 »

Bizdelnick писал(а):
04.08.2016 13:08
MiK13 писал(а):
04.08.2016 12:50
А если в минном поле проложены дорожки между минами и каждая мина обозначена флажком, то и ходить по нему можно довольно безопасно.

А сколько времени требуется, чтобы отметить флажками все мины? У вас же сроки горят.
Так все мины уже давно флажками отмечены :)

Bizdelnick писал(а):
04.08.2016 13:08
Вы писали про простоту отладки, так вот в случае использования общей памяти никакой простоты нет. Одна программа может глючить из-за ошибки в другой, и Вы замучаетесь эту ошибку искать (тем более что она скорее всего будет воспроизводиться стохастически).

Не знаю. Но за несколько лет работы с разделяемой памятью у нас никаких серьёзных проблем не возникало. А те, что возникали, исправлялись за несколько минут. И были они связаны с тем, что кто-то взял какую-то старую версию программы, после которой произошли некоторые изменения, из-за которых увеличился размер разделяемой памяти, соответственно новая программа выдавала ошибку, так как память была меньшего размера, чем она хотела.
Да и какие могут быть ошибки, если одна программа пишет, например, измеренные значения, а другая их читает. Доступ к данным -- по имени, которое определено в общем .h файле.
Проблемы могут быть тоько если одна программа пишет какие-то данные по частям, а другая их по частям читает. Но это решается семафорами. Или кольцевым буфером (если он не переполняется)
Bizdelnick писал(а):
04.08.2016 13:08
MiK13 писал(а):
04.08.2016 12:50
с $HOME/.xinitrc у меня пока почему-то не получается

Что конкретно делаете? Там вроде бы нечему «не получаться».
Я создал файл .xinitrc в домашнем каталоге. В него записал

Код: Выделить всё

xfwm4 --daemon
gedit
После ввода имени и пароля ничего не происходит.
Или он выполняется только при выполнении startx? То есть при обычном логировании через программу login?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21432
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как в иксах сделать автозапуск с завершением?

Сообщение Bizdelnick »

MiK13 писал(а):
04.08.2016 16:55
После ввода имени и пароля ничего не происходит.

Что значит — ничего? Так и остаётся висеть DM с введёнными логином и паролем?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Goodvin
Ведущий рубрики
Сообщения: 4333
Статус: ⚝⚠⚒⚑⚖☭☞☣☤&

Re: Как в иксах сделать автозапуск с завершением?

Сообщение Goodvin »

MiK13 писал(а):
04.08.2016 16:55
Я создал файл .xinitrc в домашнем каталоге. В него записал

Код: Выделить всё

xfwm4 --daemon
gedit
После ввода имени и пароля ничего не происходит.
Или он выполняется только при выполнении startx? То есть при обычном логировании через программу login?

https://wiki.archlinux.org/index.php/Xinitr...%D0%B8%D0%B9%29
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1147
Статус: Slacker!
ОС: Slackware64-current

Re: Как в иксах сделать автозапуск с завершением?

Сообщение yars »

Арчвики, конечно, хороша, но надо учесть, что у разных дистрибутивов разные подходы к опакечиванию программ и программных комплексов, в частности, могут применяться различные патчи, могут использоваться дистрибутивозависимые конфиги и прочее.
Slackware64-current/Xfce/Xiaomi Mi Notebook Pro 15.6 | Arch Linux/Xfce/Lenovo G580
-------------
Registered Linux User #557010
Спасибо сказали:
MiK13
Сообщения: 1289
ОС: Linux Debian

Re: Как в иксах сделать автозапуск с завершением?

Сообщение MiK13 »

Bizdelnick писал(а):
04.08.2016 17:27
MiK13 писал(а):
04.08.2016 16:55
После ввода имени и пароля ничего не происходит.

Что значит — ничего? Так и остаётся висеть DM с введёнными логином и паролем?

Нет. Просто происходит обычный ввод, как будто файла .xnitrc и нет.

Но вот сейчас проверил дома, где у меня "неполноценная" система (я не смог поставить графический драйвер и у меня иксы не могут запуститься при загрузке системы).
Я создал ещё одного пользователя, в его каталоге создал файл .xinitrc:

Код: Выделить всё

xfwm4 --daemon
gedit
Зашёл как test, и после команды startx запустились иксы и запустился редактор. Я мог перемещать его по экрану, менять его размер. Мог переходить на другие столы (пустые), но больше ничего не мог сделать. После закрытия редактора закончилась и X-сессия.
В общем, это почти то, что нам нужно. Осталось только уговорить не запускать DM :)
Но видимо это получится автоматически, так как под Jessie что-то медленно программа работает. Буду ставить Squeeze.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21432
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как в иксах сделать автозапуск с завершением?

Сообщение Bizdelnick »

MiK13 писал(а):
04.08.2016 21:43
Просто происходит обычный ввод, как будто файла .xnitrc и нет.

В DM обычно есть выбор сессии, которую надо запустить. Должен быть в частности вариант «по умолчанию» — там и должно грузиться то, что прописано в .xinitrc.

MiK13 писал(а):
04.08.2016 21:43
под Jessie что-то медленно программа работает. Буду ставить Squeeze.

:doh:
Если что-то не работает, пришла пора переустановить виндовс?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
MiK13
Сообщения: 1289
ОС: Linux Debian

Re: Как в иксах сделать автозапуск с завершением?

Сообщение MiK13 »

Bizdelnick писал(а):
04.08.2016 22:22
MiK13 писал(а):
04.08.2016 21:43
Просто происходит обычный ввод, как будто файла .xnitrc и нет.

В DM обычно есть выбор сессии, которую надо запустить. Должен быть в частности вариант «по умолчанию» — там и должно грузиться то, что прописано в .xinitrc.
Проверю. Но, похоже, это уже не актуально.
Bizdelnick писал(а):
04.08.2016 22:22
MiK13 писал(а):
04.08.2016 21:43
под Jessie что-то медленно программа работает. Буду ставить Squeeze.

:doh:
Если что-то не работает, пришла пора переустановить виндовс?
:)
Виндовс, обычно, переустанавливают, когда что-то перестаёт работать. То есть устанавливают заново ТОЖЕ самое.
Тут ситуация другая. То, что работает в 6-м дебиане, не хочет нормально работать в 8-м.
Написал программу, на FLTK, которая выводит на экран изображение. И в подокно выводит гистограмму, чтобы можно было настраивать яркость и контрастность (по типу уровней в gimp). В Squeeze работало нормально. В Wheezy подокно показывается, но картинка в нём НЕ МЕНЯЕТСЯ. Причём, независимо от того, сколько раз я разрешаю его отображение, в нём остаётся НАЧАЛЬНАЯ картинка. Запускаю ТОТ ЖЕ исполняемый файл на Squeeze -- всё работает хорошо.
Я допускаю, что в новое версии Debian что-то улучшили, пожертвовав совместимостью. Но разбираться сейчас в этом нет времени.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21432
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как в иксах сделать автозапуск с завершением?

Сообщение Bizdelnick »

MiK13 писал(а):
05.08.2016 10:52
Написал программу, на FLTK, которая выводит на экран изображение. И в подокно выводит гистограмму, чтобы можно было настраивать яркость и контрастность (по типу уровней в gimp). В Squeeze работало нормально. В Wheezy подокно показывается, но картинка в нём НЕ МЕНЯЕТСЯ. Причём, независимо от того, сколько раз я разрешаю его отображение, в нём остаётся НАЧАЛЬНАЯ картинка. Запускаю ТОТ ЖЕ исполняемый файл на Squeeze -- всё работает хорошо.
Я допускаю, что в новое версии Debian что-то улучшили, пожертвовав совместимостью. Но разбираться сейчас в этом нет времени.

А я допускаю, что это скорее Вы что-то не так делаете. К тому же FLTK и Qt — это две ну очень большие разницы.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
MiK13
Сообщения: 1289
ОС: Linux Debian

Re: Как в иксах сделать автозапуск с завершением?

Сообщение MiK13 »

Bizdelnick писал(а):
05.08.2016 12:22
А я допускаю, что это скорее Вы что-то не так делаете. К тому же FLTK и Qt — это две ну очень большие разницы.

Я это тоже допускаю. Но вот разбираться с тем почему перестало работать то, что раньше работало, сейчас нет времени.
Когда-то я столкнулся с тем, что одни и те же клавиши выдавали разные коды в svgakib и в иксах. Тут мне сказали, что в иксах надо вызывать специальную функцию, чтобы получить настоящий код клавиши. Я сделал и всё заработало.
Но недавно попробовал странслировать старый код -- выскочило предупреждение, что функция устарела. Хотя и работает.
И, кстати, нормально работают многие "устаревшие" функции.
То, что FLTK и Qt -- "две большие разницы", я знаю. Просто, на фултике мне делать программы гораздо проще.
Спасибо сказали:
Kopilov
Сообщения: 957
ОС: [K]Ubuntu, Debian

Re: Как в иксах сделать автозапуск с завершением?

Сообщение Kopilov »

MiK13 писал(а):
05.08.2016 13:24
И, кстати, нормально работают многие "устаревшие" функции.


http://semver.org/lang/ru/
Объявление функционала устаревшим — это обычное дело в ходе разработки и часто необходимо для продвижения вперёд. Когда вы объявляете устаревшим часть публичного API, вы должны сделать две вещи: (1) обновить вашу документацию, чтобы дать пользователям узнать об этом изменении; (2) выпустить новый релиз с увеличением минорной версии. Прежде чем вы полностью удалите устаревший функционал в релизе с увеличением главной версии, должен быть как минимум один минорный релиз, содержащий объявление функционала устаревшим, чтобы пользователи могли плавно перейти на новый API.

Так что убирайте устаревшие функции из своего кода, пока их не убрали из библиотек (если, конечно, планируете обновлять библиотеки). То, что они "нормально работают" -- заслуга разработчиков, хранящих обратную совместимость.
Спасибо сказали:
Аватара пользователя
Goodvin
Ведущий рубрики
Сообщения: 4333
Статус: ⚝⚠⚒⚑⚖☭☞☣☤&

Re: Как в иксах сделать автозапуск с завершением?

Сообщение Goodvin »

yars писал(а):
04.08.2016 20:16
Арчвики, конечно, хороша, но надо учесть, что у разных дистрибутивов разные подходы к опакечиванию программ и программных комплексов, в частности, могут применяться различные патчи, могут использоваться дистрибутивозависимые конфиги и прочее.

Безусловно.
Но в данном случае арчвики хороша другим: там очень внятно описано и это вполне может помочь автору топика понять принципы работы и направление своих действий.
Хотя, глядя на его посты, я начинаю сомневаться, что ему это вообще нужно - понимать как оно работает.
Спасибо сказали: