Возможно, в среде udev, выполняющей эти сценарии, не определен PATH. Попробуйте использовать полные пути к командам cd
, mkdir
, cp
и т. Д. Вы можете узнать пути, используя, например, команду which cd
в оболочке.
Я не пробовал это с LXDE, но теоретически он не должен завершать эти процессы, если:
а. Это лидер сессии, что маловероятно. б. Он добровольно решает их убить. в. Какой-то другой процесс завершает их работу в результате завершения работы lxpanel (или другого средства запуска ).
Я не думаю, что это относится к lxpanel. В некоторых более монолитных средах (, например, Gnome Shell ), некоторые аналогичные действия могут привести к завершению работы всей оболочки и, следовательно, всех приложений.
Связанный ответ:https://unix.stackexchange.com/a/158736/58388
lxpanel
можно использовать как место для запуска других приложений, да. Например, в моей системе Debian LXDE у меня есть верхняя панель с панелью приложений. На этой панели приложений есть несколько ярлыков приложений. Щелчок по ярлыку запускает это приложение.
Итак, у меня есть один короткий путь, запускающий Quartus. Когда он работает...
% pstree -p -s 29439
systemd(1)---lightdm(915)---lightdm(2002)---lxsession(2027)---lxpanel(2103)---q+
% ps -p 29439 -o 'pid,pgid,ppid,cmd'
PID PGID PPID CMD
29439 2027 2103 quartus
Обратите внимание, что лидером группы процессов является lxsession
.
Давай убьем lxpanel
...
% kill 2103
% pstree -p -s 29439
systemd(1)---quartus(29439)---{quartus}(29468)
% ps -p 29439 -o 'pid,pgid,ppid,cmd'
PID PGID PPID CMD
29439 2027 1 quartus
Это похоже на традиционное -воспитание детей.
Мы можем перезапустить его с помощью
% lxpanel --profile LXDE
Обратите внимание, что именно здесь все начинает раздражать. Это процесс переднего плана, поэтому у вас возникнут проблемы с закрытием терминала. Это также не всегда (по моему опыту )показывает одно и то же. Поэтому я стараюсь никогда не убивать lxpanel
и просто перезапускать его, если это необходимо, с помощьюlxpanelctl --restart
Чтобы перезапустить LXPanel, вам нужно знать имя вашего профиля LXPanel. Вероятно, это либо Lubuntu
, если вы используете Lubuntu, либо LXDE
в противном случае, поскольку это значения по умолчанию, и большинство людей не переименовывают эти имена профилей по умолчанию. Обычно вы можете получить список доступных профилей с помощью этой команды:
find ~/.config/lxpanel -maxdepth 1 -mindepth 1 -type d -print0 | xargs -0 basename --multiple
Получив имя своего профиля, введите в терминале следующее, заменив $LXPANEL _PROFILE на имя вашего профиля:
killall lxpanel
nohup lxpanel -p $LXPANEL_PROFILE &
Часть nohup
гарантирует, что lxpanel не будет закрываться при закрытии окна терминала .
Уничтожение или перезапуск lxpanel не влияет на другие программы, запущенные через меню или диалоговое окно «Выполнить». Программы продолжают нормально работать и переключение задач через Alt + Tab работает нормально.
Вы можете использовать lxpanelctl
для перезапуска существующей LXPanel. Если LXPanel запущен, вы можете запустить команду из командной строки Alt + F2 или терминала :
lxpanelctl restart
Эта команда не будет работать, если LXPanel не запущена, но она полезна, если вы хотите, чтобы LXPanel перезагрузил конфигурацию. Перезапуск не влияет на программы, запущенные из LXPanel. Например, если вы запустите LXTerminal из меню LXPanel и выполните указанную выше команду, LXTerminal не завершится. Но виджеты LXPanel будут перезагружены. Например, виджет «Монитор использования ЦП» запустится заново.