我正在尝试startx
以非 root 用户身份启动已安装的Ubuntu-server 16.04( Linux nanopim1 3.4.113-sun8i #16 SMP PREEMPT Tue Jun 13 14:15:57 CEST 2017 armv7l armv7l armv7l GNU/Linux
) 。openbox
我尝试将这些文件逐个放入其中,/rc.local
但没有成功!唯一有效的方法是放入任何文件startx
而不添加任何内容/etc/rc.local
,然后它以 root 身份启动!
su -l m -c startx
su -s /bin/bash -c startx m&
su - m -c startx
我也尝试了另一种方法,我确实在这里创建了一个文件:/etc/systemd/system/autologin.service
内容如下:
[Unit]
Description=Autologin service
[Service]
Type=fork
user=m
group=m
ExecStart=/usr/bin/startx
TimeoutSec=0
[Install]
WantedBy=multi-user.target
然后:sudo systemctl daemon-reload
但是又没起作用!!!
只放在startx
里面/etc/local
是不行的,但root
我不想成为用户!
答案1
显示管理器版本(更简单)
显示管理器通常负责显示登录屏幕并启动用户会话。如果您有显示管理器,将其设置为自动登录将是阻力最小的途径。它是一种广泛使用且可能经过充分测试和支持的解决方案。您需要将其设置为 1) 自动登录和 2) 使用您喜欢的会话,但两者通常都受 Linux 支持的常用显示管理器(lightdm、xdm 等)的支持。
在 ubuntu 16.04(非服务器)上,我有以下内容/etc/lightdm/lightdm.conf
[Seat:*]
autologin-guest=false
autologin-user=xyz
autologin-user-timeout=0
您需要安装并启用 lightdm
apt-get install lightdm
Lightdm 是默认的 ubuntu 显示管理器。默认情况下,它不会安装在 ubuntu 服务器版本上,并且您将安装多个软件包,因此如果您想避免使用它们,则需要更困难的手动方式。
此处更好地描述了在 ubuntu 服务器上设置图形登录的方法https://askubuntu.com/questions/53822/how-do-you-run-ubuntu-server-with-a-gui#788193,之后您可以根据需要设置自动登录。
您可能需要选择您喜欢的会话类型(openbox),方法是设置/home/username/.dmrc
如下
[Desktop]
Session=openbox
手册 (startx)
我不知道在启动时启动 x 会话 startx 到底需要什么,但我建议将问题分解为逐步的过程:
您说 startx 可以以 root 身份运行。最好验证一下您是否可以以 root 身份登录到控制台并使用以下命令启动 x 会话:
root@xyz # startx
确保您以首选用户身份登录时可以启动 X 会话。
myuser@xyz $ startx
确保您能够以首选用户身份启动 X 会话,但同时以 root 身份登录,方法是基于上一个命令:
a)使用类似:
root@xyz # su -l myuser -c startx
如果需要多个参数,请引用该命令:
root@xyz # su -l myuser -c "startx arg1 arg2 .."
b) 如果您在 systemd 单元中设置了用户,则可以跳过此步骤。
使其自动启动。
a) 添加(3a)命令
/etc/rc.local
并重新启动。b) 使用您描述的 systemd 单元,并按照 2/3 设置命令。要进行测试,您可以使用类似
root@xyz # systemctl stop autologin # make sure to reset service root@xyz # systemctl daemon-reload # don't know if needed root@xyz # systemctl start autologin
一旦它起作用,您可能需要启用它以自动启动或 systemd 所需的任何功能(不是专家)。
root@xyz # systemctl enable autologin
答案2
我按照以下步骤操作:
sudo apt-get install --no-install-recommends xserver-xorg xserver-xorg-legacy xinit xterm
重要的是遗产包,因为在上一个版本中,如果没有它,下一个命令就无法工作:
sudo dpkg-reconfigure xserver-xorg-legacy
在控制台菜单中请选择任何人
之后,您可以通过 xinit 或启动无需root:
sudo su -l pi -c "xinit -geometry =800x400+0+0 -fn 8x13 -j -fg white -bg black /home/pi/go/bin/wego -- -nocursor" & -geometry =800x400+0+0 -fn 8x13 -j -fg white -bg black /home/youruser/bin/anyprogram -- -nocursor" &
或启动:
sudo su -l pi -c startx