Следующее приведет к уничтожению группы процессов при завершении nc
#!/bin/sh
avconv x y z | sox a b c | { nc somewhere port ; pkill -g 0 ; }
В зависимости от того, как это начнется, вам может потребоваться использовать такую утилиту, как setid, для ограничения вещей, которые находятся в группе. Вы также можете заменить - g 0
с -P $$
. Это работает, когда оболочка запускает команду pkill после завершения nc.
См. также Убить все дочерние процессы
Я решил эту проблему, используя страницу Debian wiki и эту страницу на LinuxServe -- особенно комментарий!
когда я делаю /usr/sbin/lightdm --show-config
, я получаю два файла: /etc/lightdm/lightdm.conf
и /usr/share/lightdm/lightdm.conf.d/01_debian.conf
Их я отредактировал так, что в /usr/share/lightdm/lightdm. conf.d/01_debian.conf
написано:
greeter-session=lightdm-greeter
session-wrapper=/etc/X11/Xsession
и в /etc/lightdm/lightdm. conf
говорится:
autologin-user=username
autologin-user-timeout=0
Хитрость заключалась в том, что, как сказано в комментарии в конце второй ссылки, настройки autologin должны быть в секции [SeatDefaults]
файла. Есть два места, где эти строки появляются, закомментированные, и я не закомментировал первое место.
Это было немного странно, потому что в обычных файлах настроек для Debian такие строки не появляются дважды - но я должен был присмотреться получше!
В Debian 9 и 10 с Xfce все, что мне нужно было сделать, это добавить это в/etc/lightdm/lightdm.conf
:
[Seat:*]
autologin-user=david
Несмотря на то, что говорят другие ответы, мой пользователь не должен быть в группе autologin
, и мне не нужно было ничего делать с PAM.