        |
Autologin gráfico con systemd (ubuntu 20.04, ...)
(copia de los apuntes de casa de darío)
(arch) INFO: cómo hice el arranque de las X sin login Es un poco complicado porque systemd mata las X si detecta que están sin clientes, con lo que hay que forzar que haya siempre al menos una ventana (en mi caso un terminal con el texto de "Launching desktop..." durante 5s, que es más que suficiente para que arranque algo del cinnamon y ya no se cierren las X).
/home/dario/.xinitrc
#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
sh -c "wifion.sh off &"
#xchainkeys &
export GTK_IM_MODULE='ibus'
export QT_IM_MODULE='ibus'
export XMODIFIERS=@im='ibus'
ibus-daemon -drx
#/home/dario/cinnamon-session.sh
xterm -T "Desktop launcher" -geometry 21x1 -e "echo -n Launching desktop... ; nohup /home/dario/cinnamon-session.sh >/dev/null 2>/dev/null & sleep 5"
xchainkeys
|
/home/dario/cinnamon-session.sh
#!/bin/bash
echo "Ejecutando $0 $@" >> /tmp/misesion.log
export BASH=/bin/bash
export BASH_ALIASES=()
export BASH_ARGC=([0]="0")
export BASH_ARGV=()
export BASH_CMDS=()
export BASH_LINENO=()
export BASH_SOURCE=()
export BASH_VERSION='5.0.7(1)-release'
export COLUMNS=480
export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
export DIRSTACK=()
export EDITOR=vim
export GROUPS=()
export HISTFILE=/home/dario/.bash_history
export HISTFILESIZE=500
export HISTSIZE=500
export HOME=/home/dario
export HOSTNAME=vigne
export HOSTTYPE=x86_64
export IFS=$' \t\n'
export INVOCATION_ID=bd2805f644464820b2c99a266d596ca7
export JOURNAL_STREAM=9:23286
export LANG=es_ES@euro.UTF-8
export LC_COLLATE=C
export LINES=135
export LOGNAME=dario
export MACHTYPE=x86_64-pc-linux-gnu
export MAIL=/var/spool/mail/dario
export MAILCHECK=60
export MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins
export OPTERR=1
export OPTIND=1
export OSTYPE=linux-gnu
export PATH=/home/dario/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
export PIPESTATUS=([0]="1")
export PS1='[\u@\h \W]\$ '
export PS2='> '
export PS4='+ '
export PWD=/home/dario
export SHELL=/bin/bash
export SHLVL=1
export TERM=linux
export USER=dario
export XDG_RUNTIME_DIR=/run/user/1000
export XDG_SEAT=seat0
export XDG_SESSION_CLASS=user
export XDG_SESSION_ID=3
export XDG_SESSION_TYPE=tty
export XDG_VTNR=2
export clrgreen='\e[1;32m'
export clrred='\e[1;31m'
export clrreset='\e[0m'
export clrwhite='\e[1;37m'
export DISPLAY=:0
/usr/bin/script -c /usr/bin/cinnamon-session 2>/tmp/stderr.log > /tmp/stdout.log
|
/etc/systemd/system/getty\@tty1.service.d/override.conf
[Service]
Type=simple
ExecStart=
ExecStart=/usr/local/sbin/rungettyloop --autologin dario tty1
|
/home/dario/.bash_profile
#
# ~/.bash_profile
#
[[ -f ~/.bashrc ]] && . ~/.bashrc
if [ m`/home/dario/bin/getcurtty.sh` = mtty1 ] ; then
set -m
export TERM=xterm-color
#startx >/tmp/errors.log 2>&1 < /dev/tty1
startx
logout
fi
|
/home/dario/bin/getcurtty.sh
#!/bin/bash
cur_tty=`ps -efa | expand | grep "^$USER *$PPID" | sed "s/ */ /g" | cut -d ' ' -f 6`
cur_ppid=`ps -efa | expand | grep "^$USER *$PPID" | sed "s/ */ /g" | cut -d ' ' -f 3`
while [ "m$cur_tty" == "m?" ] && [ "m$cur_ppid" != "m1" ] ; do
cur_tty=`ps -efa | expand | grep "^$USER *$cur_ppid" | sed "s/ */ /g" | cut -d ' ' -f 6`
cur_ppid=`ps -efa | expand | grep "^$USER *$cur_ppid" | sed "s/ */ /g" | cut -d ' ' -f 3`
done
echo $cur_tty
|
El /usr/local/sbin/rungettyloop es un binario que he copiado desde el que tenía compilado en htpc. Los fuentes son: http://3.0.1.46:8000/HowTo/uploads/341/rungettyloop-1.2-sources.tgz
|