Зачем нужны initramfs и initrd

Часто различия между запуском сценария вручную и его запуском через systemd связаны с различиями в среде. Перед вызовом xdg-open добавьте в отдельную строку команду env , которая выгружает среду.

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

Ваш код bash в вашем тесте выглядит нормально, но вот версия, которая немного более идиоматична, если вам интересно. bash естественным образом разбивается на пробелы, а URL-адреса не содержат пробелов, поэтому этот альтернативный код работает. Я также заменил do / done фигурными скобками:

websites="
    http://unix.stackexchange.com/
    http://stackoverflow.com/"

for i in $websites; {
    # works with /usr/bin/firefox
  /usr/bin/xdg-open "$i"
}
3
17.11.2018, 22:25
0 ответов

Теги

Похожие вопросы