Запустить GUI в .profile, если он не запущен? Linux Mint 19

393
Mark Deven

У меня есть следующий скрипт в моем файле .profile:

systemctl is-active --quiet lightdm && ( echo Welcome to Terminal) || ( sleep 8 startx) fi 

цель в том, что если графический интерфейс еще не запущен, он запустит графический интерфейс. Однако это никогда не происходит. Там даже не сказано «Добро пожаловать в терминал».

РЕДАКТИРОВАТЬ: я попытался добавить правило в / etc / sudoers, но это не меняет приглашение. Вот что у меня в файле:

# # This file MUST be edited with the 'visudo' command as root. # # Please consider adding local content in /etc/sudoers.d/ instead of # directly modifying this file. # # See the man page for details on how to write a sudoers file. # Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"  # Host alias specification  # User alias specification  # Cmnd alias specification lukaka ALL = NOPASSWD: /usr/sbin/service lightdm * # User privilege specification root ALL=(ALL:ALL) ALL  # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL  # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL  # See sudoers(5) for more information on "#include" directives:  #includedir /etc/sudoers.d 
0
* Ошибка: * завершающий `fi` без запуска` if`. Для запуска `lightdm`:` systemctl start lightdm`. Чтобы не запускать команды в под-оболочке, используйте `{}` вместо `()`. Alex 5 лет назад 0
И что запустит графический интерфейс? Mark Deven 5 лет назад 0

1 ответ на вопрос

1
Alex

Добавьте в конец ~/.profileфайла:

systemctl is-active --quiet lightdm && { echo 'Welcome to Terminal' } || { echo 'Starting Desktop GUI in 8 seconds... Press Ctrl-c to abort' sleep 8 sudo systemctl start lightdm } 

Если ваш LinuxMint настроен на загрузку с консоли, а не с рабочего стола, то после входа в свою учетную запись вы увидите сообщение:

Запуск Desktop GUI через 8 секунд ... Нажмите Ctrl-c, чтобы прервать

чтобы прервать загрузку рабочего стола, - нажмите Ctrl+c иначе, система попросит вас ввести пароль, если вы пройдете авторизацию, запустится графический интерфейс рабочего стола.

Если вы уже загрузили рабочий стол и запустили программу терминала, она покажет вам приветственное сообщение:

Добро пожаловать в Терминал

PS

Если вы не хотите указывать sudoпароль для автоматического запуска рабочего стола, выполните следующие действия:

1. Запустите sudo visudoи введите свой пароль.

2. Если вы не хотите sudoбеспокоить вас паролем повсюду, то
добавьте в конец файла: ( подставьте свое действительное имя пользователя вместо YourUserName )
YourUserName ALL=(ALL) NOPASSWD: ALLи сохраните его.
в противном случае вы можете обойти требование ввода sudoпароля только для запуска рабочего стола, используя следующую строку visudo:
YourUserName ALL = NOPASSWD: /usr/sbin/service lightdm *

Это то, что у меня есть, за исключением того, что он запрашивает пароль sudo, который, скорее всего, не нужно вводить. Mark Deven 5 лет назад 0
Я обновил ответ, прочитайте шаги после PS, чтобы запустить `sudo` без запроса пароля Alex 5 лет назад 0
Разве это не удаляет sudo pass, подсказывает все? Mark Deven 5 лет назад 0
Как выглядит `lukaka ALL = NOPASSWD: / usr / sbin / service lightdm *`? Mark Deven 5 лет назад 0
Используйте: `lukaka ALL = NOPASSWD: ALL`, тогда sudo не побеспокоит вас паролем Alex 5 лет назад 0
Но не будет ли это беспокоить меня о пароле или о сервисе, потому что я хочу, чтобы sudo работал нормально, кроме как с этим экземпляром. Mark Deven 5 лет назад 0
Я закончил тем, что использовал опубликованную мной команду, однако, как вы и сказали, мне нужно поместить ее в нижнюю строку. Не могли бы вы изменить свой ответ, чтобы в качестве альтернативы вы указали `YourUserName ALL = NOPASSWD: / usr / sbin / service lightdm *`, чтобы вы могли отключить запрос пароля sudo только для одного элемента? Mark Deven 5 лет назад 0
Готово. Ответ обновлен с вашим решением. Alex 5 лет назад 0

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