Запускать X-сервер при входе в систему с помощью Systemd

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

function FUNCTION() {
    local LOCAL="value"
    echo "$LOCAL"
    echo "This function is done now" >&2
}

Другая возможность - записаться в файл, а не напрямую печатать сообщения журнала, например, используя что-то вроде этого:

log() {
    printf '%s\n' "$@" > my.log
}

Тем не менее, функции Bash не могут возвращать переменные . Единственное действительное «возвращаемое» значение - это код выхода. По этой причине ( и многие другие ), если вам нужны надежные журналы, возвращаемые значения, обработка исключений и многое другое, вы захотите использовать другой язык, например Python, Ruby или Java.

1
14.04.2018, 23:44
2 ответа

Как пользователь systemd, который запускает X при загрузке (без менеджера входа в систему ), я сделал следующее:https://wiki.archlinux.org/index.php/Systemd/User#Automatic_login_into_Xorg_without_display_manager

0
28.01.2020, 02:12

Это ограничение безопасности, применяемое XOrg по умолчанию. Вы можете отключить его, отредактировав /etc/X11/Xwrapper.configи изменив allowed_usersс consoleна anybody.

Я протестировал это, выполнив startxиз юнит-файла systemd, и все работает нормально.

Источник :тот же тот же документ , упомянутый Лайлом .

1
28.02.2020, 16:49

Теги

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