Re: Вот как бы этому вашему systemd объяснить...

2017-10-25 Пенетрантность Евгений Терешков
Artem Chuprina пишет:

> Проэкспериментируй. В документации ничего не сказано на тему того, будет
> ли systemd убивать такие процессы по завершении основного. По идее вроде
> не должен, а должен только по stop, а вот по жизни...
> Тем более что если он завершился, то какие у него, нафиг, потомки? Чьи,
> прошу прощения, потомки, если он уже завершился? Другое дело, что в
> случае systemd у них своя cgroup, вероятно, и он может проявить над ней
> противоестественный интеллект.


Как это не сказано. man 5 systemd.kill
KillMode как раз про это.

-- 
С уважением, Терешков Евгений.
Jabber ID: e...@altlinux.org, evg_k...@jabber.ru

Re: ядро и nvidia

2017-10-25 Пенетрантность Ivan Petrov

вроде получилось.
но когда прописал просто имя ядра + update-grub

25.10.2017 20:30, Павел Марченко пишет:
Необходимо менять в /boot/grub/grub.cfg или перегенерить его после 
изменения /etc/defaults командой  grub2-mkconfig


25 октября 2017 г., 15:03 пользователь Ivan Petrov > написал:


Отредактировал grub в /etc/default:


GRUB_DEFAULT="gnulinux-advanced-2542290c-3d4f-41dc-b851-cddd0d51977b>gnulinux-3.2.0-4-amd64-advanced-2542290c-3d4f-41dc-b851-cddd0d51
#GRUB_SAVEDEFAULT="true"
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""

Сделал update-grub
Результат:
Меню по-прежнему загружает "Доп настройки" и в них пункт 1 - ядро 4.9

25.10.2017 17:59, Pavel Marchenko пишет:

Можно изменить порядок загрузки


https://ru.m.wikibooks.org/w/index.php?title=Grub_2&action=edit§ion=5



*От: *Ivan Petrov >
*Отправлено: *25 октября 2017 г. в 13:54
*Кому: *debian-russian@lists.debian.org

>
*Тема: *Re: ядро и nvidia

Пришла большая проблема:

обновил jessie с бекпортов до ядра 4.9.0.0 bpo3

слетели драйвера nvidia .

В результате сейчас на драйверах 304хх система грузит Х-ы на

ядре 3.2.0.4.

На 4.9. их установка + dkms + headers приводит к белому пустому

мигающему курсору на экране вместо gdm3

Я бы и работал на 3.2.0.4., но оно грузится из дополнительных
параметров

grub2

А в интернете я так и не нашел как заставить систему грузиться с
пункта

дополнительного меню grub.

В основном меню у меня 1. Debian

      2. Доп параметры

  3. Windows

Если нажать на пункт 2 - там выбор ядер.

Но /etc/default/grub предлагает выбор загрузки только из первых трех

пунктов.

Можно ли снести ядро 4.9 ?

Будет ли система грузиться (не снесет ли что-то нужное?)

25.10.2017 13:50, Ivan Petrov пишет:

  > nvidia 304xx

  >

  >






--
В смысле осмысления бессмысленного смысл тоже имеет определенную 
осмысленность!!!





Re: Вот как бы этому вашему systemd объяснить...

2017-10-25 Пенетрантность Artem Chuprina
Victor Wagner -> debian-russian@lists.debian.org  @ Wed, 25 Oct 2017 13:25:52 
+0300:

 >> > Вот что надо туда дописать, чтобы systemd понимал, что если процесс
 >> > vws autostart завершился с нулевым кодом и не оставил ни одного
 >> > потомка, то так и надо, и сервис active, а ExecStop при покладании
 >> > системы надо выполнять?
 >> >   
 >> 
 >> Не уверен, что правильно понял задачу (недостаточно подробно описаны
 >> возможные кейзы), но если понял правильно, то:

 > В результате старта сервиса могут быть порождены процессы-потомки, а
 > могут быть и не порождены. Поэтому я немножко не уверен, что oneshot
 > это то, что надо.

Проэкспериментируй. В документации ничего не сказано на тему того, будет
ли systemd убивать такие процессы по завершении основного. По идее вроде
не должен, а должен только по stop, а вот по жизни...

Тем более что если он завершился, то какие у него, нафиг, потомки? Чьи,
прошу прощения, потомки, если он уже завершился? Другое дело, что в
случае systemd у них своя cgroup, вероятно, и он может проявить над ней
противоестественный интеллект.

В остальном задача явно на oneshot.



Re: Вот как бы этому вашему systemd объяснить...

2017-10-25 Пенетрантность Artem Chuprina
Victor Wagner -> debian-russian@lists.debian.org  @ Wed, 25 Oct 2017 12:07:02 
+0300:

 > Коллеги,

 > есть вот такой service file:

 > [Unit]
 > Description=Virtual Workstation Autostart
 > Documentation=man:vws(1)
 > After=network.target dnsmasq.service
 > [Service]
 > Type=forking
 > ExecStart=/usr/bin/vws autostart
 > ExecStop=/usr/bin/vws shutdown --wait
 > Restart=no
 > [Install]
 > WantedBy=multi-user.target
 > Alias=vws.service


 > Вот что надо туда дописать, чтобы systemd понимал, что если процесс
 > vws autostart завершился с нулевым кодом и не оставил ни одного
 > потомка, то так и надо, и сервис active, а ExecStop при покладании
 > системы надо выполнять?

Про RemainAfterExit тебе уже сказали, а еще Type не forking, а oneshot в
таком раскладе.



Re: ядро и nvidia

2017-10-25 Пенетрантность Павел Марченко
Необходимо менять в /boot/grub/grub.cfg или перегенерить его после
изменения /etc/defaults командой  grub2-mkconfig

25 октября 2017 г., 15:03 пользователь Ivan Petrov 
написал:

> Отредактировал grub в /etc/default:
>
> GRUB_DEFAULT="gnulinux-advanced-2542290c-3d4f-41dc-b851-
> cddd0d51977b>gnulinux-3.2.0-4-amd64-advanced-2542290c-3d4f-
> 41dc-b851-cddd0d51
> #GRUB_SAVEDEFAULT="true"
> GRUB_TIMEOUT=5
> GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
> GRUB_CMDLINE_LINUX_DEFAULT="quiet"
> GRUB_CMDLINE_LINUX=""
>
> Сделал update-grub
> Результат:
> Меню по-прежнему загружает "Доп настройки" и в них пункт 1 - ядро 4.9
>
> 25.10.2017 17:59, Pavel Marchenko пишет:
>
>> Можно изменить порядок загрузки
>>
>> https://ru.m.wikibooks.org/w/index.php?title=Grub_2&action=edit§ion=5
>>
>> *От: *Ivan Petrov 
>> *Отправлено: *25 октября 2017 г. в 13:54
>> *Кому: *debian-russian@lists.debian.org > ebian.org>
>> *Тема: *Re: ядро и nvidia
>>
>> Пришла большая проблема:
>>
>> обновил jessie с бекпортов до ядра 4.9.0.0 bpo3
>>
>> слетели драйвера nvidia .
>>
>> В результате сейчас на драйверах 304хх система грузит Х-ы на
>>
>> ядре 3.2.0.4.
>>
>> На 4.9. их установка + dkms + headers приводит к белому пустому
>>
>> мигающему курсору на экране вместо gdm3
>>
>> Я бы и работал на 3.2.0.4., но оно грузится из дополнительных параметров
>>
>> grub2
>>
>> А в интернете я так и не нашел как заставить систему грузиться с пункта
>>
>> дополнительного меню grub.
>>
>> В основном меню у меня 1. Debian
>>
>>  2. Доп параметры
>>
>>  3. Windows
>>
>> Если нажать на пункт 2 - там выбор ядер.
>>
>> Но /etc/default/grub предлагает выбор загрузки только из первых трех
>>
>> пунктов.
>>
>> Можно ли снести ядро 4.9 ?
>>
>> Будет ли система грузиться (не снесет ли что-то нужное?)
>>
>> 25.10.2017 13:50, Ivan Petrov пишет:
>>
>>  > nvidia 304xx
>>
>>  >
>>
>>  >
>>
>>
>
>


-- 
В смысле осмысления бессмысленного смысл тоже имеет определенную
осмысленность!!!


Re: ядро и nvidia

2017-10-25 Пенетрантность Ivan Petrov

Отредактировал grub в /etc/default:

GRUB_DEFAULT="gnulinux-advanced-2542290c-3d4f-41dc-b851-cddd0d51977b>gnulinux-3.2.0-4-amd64-advanced-2542290c-3d4f-41dc-b851-cddd0d51
#GRUB_SAVEDEFAULT="true"
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""

Сделал update-grub
Результат:
Меню по-прежнему загружает "Доп настройки" и в них пункт 1 - ядро 4.9

25.10.2017 17:59, Pavel Marchenko пишет:

Можно изменить порядок загрузки

https://ru.m.wikibooks.org/w/index.php?title=Grub_2&action=edit§ion=5

*От: *Ivan Petrov 
*Отправлено: *25 октября 2017 г. в 13:54
*Кому: *debian-russian@lists.debian.org 


*Тема: *Re: ядро и nvidia

Пришла большая проблема:

обновил jessie с бекпортов до ядра 4.9.0.0 bpo3

слетели драйвера nvidia .

В результате сейчас на драйверах 304хх система грузит Х-ы на

ядре 3.2.0.4.

На 4.9. их установка + dkms + headers приводит к белому пустому

мигающему курсору на экране вместо gdm3

Я бы и работал на 3.2.0.4., но оно грузится из дополнительных параметров

grub2

А в интернете я так и не нашел как заставить систему грузиться с пункта

дополнительного меню grub.

В основном меню у меня 1. Debian

     2. Доп параметры

     3. Windows

Если нажать на пункт 2 - там выбор ядер.

Но /etc/default/grub предлагает выбор загрузки только из первых трех

пунктов.

Можно ли снести ядро 4.9 ?

Будет ли система грузиться (не снесет ли что-то нужное?)

25.10.2017 13:50, Ivan Petrov пишет:

 > nvidia 304xx

 >

 >






RE: ядро и nvidia

2017-10-25 Пенетрантность Pavel Marchenko
Можно изменить порядок загрузки
https://ru.m.wikibooks.org/w/index.php?title=Grub_2&action=edit§ion=5


От: Ivan Petrov
Отправлено: 25 октября 2017 г. в 13:54
Кому: debian-russian@lists.debian.org
Тема: Re: ядро и nvidia

Пришла большая проблема:
обновил jessie с бекпортов до ядра 4.9.0.0 bpo3
слетели драйвера nvidia .
В результате сейчас на драйверах 304хх система грузит Х-ы на
ядре 3.2.0.4.
На 4.9. их установка + dkms + headers приводит к белому пустому 
мигающему курсору на экране вместо gdm3
Я бы и работал на 3.2.0.4., но оно грузится из дополнительных параметров 
grub2
А в интернете я так и не нашел как заставить систему грузиться с пункта 
дополнительного меню grub.
В основном меню у меня 1. Debian
2. Доп параметры
3. Windows
Если нажать на пункт 2 - там выбор ядер.
Но /etc/default/grub предлагает выбор загрузки только из первых трех 
пунктов.
Можно ли снести ядро 4.9 ?
Будет ли система грузиться (не снесет ли что-то нужное?)

25.10.2017 13:50, Ivan Petrov пишет:
> nvidia 304xx
> 
> 





Re: ядро и nvidia

2017-10-25 Пенетрантность Ivan Petrov

Пришла большая проблема:
обновил jessie с бекпортов до ядра 4.9.0.0 bpo3
слетели драйвера nvidia .
В результате сейчас на драйверах 304хх система грузит Х-ы на
ядре 3.2.0.4.
На 4.9. их установка + dkms + headers приводит к белому пустому 
мигающему курсору на экране вместо gdm3
Я бы и работал на 3.2.0.4., но оно грузится из дополнительных параметров 
grub2
А в интернете я так и не нашел как заставить систему грузиться с пункта 
дополнительного меню grub.

В основном меню у меня 1. Debian
   2. Доп параметры
   3. Windows
Если нажать на пункт 2 - там выбор ядер.
Но /etc/default/grub предлагает выбор загрузки только из первых трех 
пунктов.

Можно ли снести ядро 4.9 ?
Будет ли система грузиться (не снесет ли что-то нужное?)

25.10.2017 13:50, Ivan Petrov пишет:

nvidia 304xx







Re: Вот как бы этому вашему systemd объяснить...

2017-10-25 Пенетрантность Alex Kicelew
On 10/25/17 13:25, Victor Wagner wrote:
>> Не уверен, что правильно понял задачу (недостаточно подробно описаны
>> возможные кейзы), но если понял правильно, то:
> В результате старта сервиса могут быть порождены процессы-потомки, а
> могут быть и не порождены. Поэтому я немножко не уверен, что oneshot
> это то, что надо.

Насколько я понимаю, oneshot это именно то, что нужно. Если потомок
порожден, то (в момент покладания системы) сервис очевидно активен, и
его нужно убивать. Если потомок не порожден, то благодаря комбинации
oneshot и RemainAfterExit сервис считается активным после нулевого
завершения, значит, его тоже нужно убивать. Если ExecStart завершился не
с нулем, то жизнь не удалась и убивать нечего.



Re: Вот как бы этому вашему systemd объяснить...

2017-10-25 Пенетрантность Victor Wagner
On Wed, 25 Oct 2017 12:56:29 +0300
Alex Kicelew  wrote:


> > 
> > Вот что надо туда дописать, чтобы systemd понимал, что если процесс
> > vws autostart завершился с нулевым кодом и не оставил ни одного
> > потомка, то так и надо, и сервис active, а ExecStop при покладании
> > системы надо выполнять?
> >   
> 
> Не уверен, что правильно понял задачу (недостаточно подробно описаны
> возможные кейзы), но если понял правильно, то:

В результате старта сервиса могут быть порождены процессы-потомки, а
могут быть и не порождены. Поэтому я немножко не уверен, что oneshot
это то, что надо.

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

Поэтому команда ExecStop должна выполняться независимо от того были ли
ли запущены в результате ExecStart долгоживущие процессы. Но если они
были, то обращаться с ними надо как в случае Type=forking

 
> 1) чтобы процесс считался запущенным при завершении ExecStart с

В данном случае, наверное, "сервис считался запущенным", а  не
"процесс". То есть с моей точки зрения это выглядит как "сервис
считается запущенным, даже если ни одного рабочего процесса не создано".

> нулевым кодом вне зависимости от того, породились потомки, или нет, и
> при этом не считался запущенным, если ExecStart вышел с ненулевым
> кодом: Type=oneshot
> RemainAfterExit=yes
> 
> 2) если процесс в результате 1) считается запущенным, то ему будет
> выдан ExecStop
> 



Re: Вот как бы этому вашему systemd объяснить...

2017-10-25 Пенетрантность Евгений Терешков
Victor Wagner пишет:

> Вот что надо туда дописать, чтобы systemd понимал, что если процесс
> vws autostart завершился с нулевым кодом и не оставил ни одного
> потомка, то так и надо, и сервис active, а ExecStop при покладании
> системы надо выполнять?

man 5 systemd.service

RemainAfterExit=yes

-- 
С уважением, Терешков Евгений.
Jabber ID: e...@altlinux.org, evg_k...@jabber.ru

Re: Вот как бы этому вашему systemd объяснить...

2017-10-25 Пенетрантность Alex Kicelew
On 10/25/17 12:07, Victor Wagner wrote:
> Коллеги,
> 
> есть вот такой service file:
> 
> [Unit]
> Description=Virtual Workstation Autostart
> Documentation=man:vws(1)
> After=network.target dnsmasq.service
> [Service]
> Type=forking
> ExecStart=/usr/bin/vws autostart
> ExecStop=/usr/bin/vws shutdown --wait
> Restart=no
> [Install]
> WantedBy=multi-user.target
> Alias=vws.service
> 
> 
> Вот что надо туда дописать, чтобы systemd понимал, что если процесс
> vws autostart завершился с нулевым кодом и не оставил ни одного
> потомка, то так и надо, и сервис active, а ExecStop при покладании
> системы надо выполнять?
> 

Не уверен, что правильно понял задачу (недостаточно подробно описаны
возможные кейзы), но если понял правильно, то:

1) чтобы процесс считался запущенным при завершении ExecStart с нулевым
кодом вне зависимости от того, породились потомки, или нет, и при этом
не считался запущенным, если ExecStart вышел с ненулевым кодом:
Type=oneshot
RemainAfterExit=yes

2) если процесс в результате 1) считается запущенным, то ему будет выдан
ExecStop



Вот как бы этому вашему systemd объяснить...

2017-10-25 Пенетрантность Victor Wagner
Коллеги,

есть вот такой service file:

[Unit]
Description=Virtual Workstation Autostart
Documentation=man:vws(1)
After=network.target dnsmasq.service
[Service]
Type=forking
ExecStart=/usr/bin/vws autostart
ExecStop=/usr/bin/vws shutdown --wait
Restart=no
[Install]
WantedBy=multi-user.target
Alias=vws.service


Вот что надо туда дописать, чтобы systemd понимал, что если процесс
vws autostart завершился с нулевым кодом и не оставил ни одного
потомка, то так и надо, и сервис active, а ExecStop при покладании
системы надо выполнять?