linux启动后自动登录并运行自定义图形界面程序

在《Ubuntu CTRL+ALT+F1~F6 进入命令模式后不支持中文显示的解决办法》一文中提到linux启动在以后运行一个独占显示器的图形程序的两种办法。

1、不启动xserver,使用fb或者directfb图形模式;

2、启动xserver不启动桌面系统。

第一种方法性能并不一定高,因为支持fb的显卡驱动可能找不到,就是用上显卡驱动了也需要CPU大量参与。另外如果用这种方式可供选择的图形程序开发技术就受限了。所以这种方法通常用在嵌入式环境下。

第二种方法只要显卡驱动了,CPU就能得到解脱。另外可以使用各种开发技术,甚至java、C#。

下面就介绍一下第二种方法。

首先需要安装有xserver,还需要配置linux启动后进入文本环境,而不是图形环境。这个就不详细介绍了。

设置自动登录

(内容来自http://blog.chinaunix.net/uid-94449-id-2002624.html,写的很简洁明了,直接借用。)

1.写脚本autologin

代码:

#!/bin/bash
/bin/login -f 
#你的用户名

移动到/usr/bin/下,并且用chmod +x autologin设置可执行权限

2.修改/etc/init/tty1.conf

修改前:

# tty1 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn
exec /sbin/getty -8 38400 tty1

修改后:

# tty1 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn
exec /sbin/getty -n -l /usr/bin/autologin -8 38400 tty1

设置自动运行图形界面程序

最初我的想法也是在启动桌面系统的代码中做手脚,修改相关的脚本,将启动桌面系统的代码修改为启动自定义图形界面程序的脚本。搜了一大圈没有找到结果,然后开机自己摸索startx的过程,从入口摸索下去找到一堆脚本大概理清了。

startx的过程这里有一篇文章,比较详细。http://blog.csdn.net/clozxy/article/details/5488699

继续按这个路子搜索文章,终于找到ubuntu设置开机启动图形应用程序,替换默认图形桌面一文。看了其中的做法,太野蛮,直接在中间劫持startx执行的客户程序。这么做有个重要的缺陷——startx命令被废了。切换到别的用户也不能用startx启动桌面系统了。

所以决定换思路。保留startx可用。仅仅在某个用户的启动脚本中加上启动自定义图形程序的代码。

linux用户的根目录下有各种在启动时设置环境变量,执行操作的脚本。这里在.bashrc中增加运行自定义图形界面程序的代码。

由于图形界面程序需要xserver,所以使用xinit命令来启动图形界面程序。

这样启动的图像界面程序没有窗口边框,因为没有启动窗口管理器。

补充一句最好不要直接修改.bashrc,.bashrc最后会有几行代码和注释。提示将自定义的初始化过程放到另外一个指定名字的文件中,.bashrc会自动去执行它。

(linux图形界面真不是linux的菜,启两个xserver之后简直慢死了。无意搜到这么一篇姨妈贴http://tieba.baidu.com/p/804746720?pid=8612574579&see_lz=1,其中的谈到的内容都没错。)

时间: 2024-08-05 02:35:47

linux启动后自动登录并运行自定义图形界面程序的相关文章

Win10运行Ubuntu图形界面程序

Win10专业版升级到最新微软周年更新版本,在Win10上安装 Xming for windows后启动Xming,并启用Ubuntu子系统. 然后,运行cmd,敲bash进入bash,输入: [plain] view plain copy sudo apt-get install x11-apps 安装完成后,再输入: [plain] view plain copy DISPLAY=:0 xeyes 就可以在Windows10下运行起Ubuntu的xeyes程序了,如图: Windows程序与

在 Linux 实例上自动安装并运行 VNC Server

原文网址:https://help.aliyun.com/knowledge_detail/41181.html?spm=5176.8208715.110.11.4c184ae8mlC7Yy 您可以使用本文提供的脚本在Linux实例上自动安装并运行VNC Server,实现远程图形化管理Linux服务器.目前,该脚本仅适用于CentOS实例,会在CentOS实例中安装GNOME桌面环境. VNC Server脚本 适用镜像:目前仅适用于CentOS镜像. 使用方法:以root身份执行命令 bas

[分享]在ubuntu9.10下实现开机自动登录并运行自己的图形程序

在ubuntu9.10下实现开机自动登录并运行自己的图形界面程序(本人接触ubuntu时日不长,文中一些说法难免有错误和疏漏之处,还请大家不吝批评指正.)实现步骤分以下三大步:1. 实现ubuntu文本形式启动2. 实现ubuntu自动登录3. 实现程序自动运行 一.文本模式启动:两种方法异曲同工:(1) 直接修改/etc/grub/grub.cfg找到类似下面的代码:53 linux /boot/vmlinuz-2.6.31-14-generic root=UUID=0f31592d-e741

[Elixir002]节点启动后自动连接其它节点

问题: 如何指定一个节点在启动后自动连接到别的节点上? 这个我们要使用到sys.config,这是erlang的配置文件,这个文件一般都是$ROOT/releases/Vsn下 1. 首先我们要先启动一个master节点,Node.list可以看到当前节点并没有连接到任何节点 iex --cookie secret --name [email protected] Erlang/OTP 18 [erts-7.2.1] [source] [64-bit] [smp:4:4] [async-thre

关于新浪微博注销后自动登录的问题

最近程序中需要做分享功能,腾讯的的OK,但新浪的注销后,再次点击时,本来应该进入到登录的授权页面,webview形式出现.但结果每次再进入时,会自动登录上次注销的号. 查了相关资料后,发现有两种解决办: 1: 因为只清除了登录数据,但是uiwebview的cookie仍然保留在本地,所以需要清除uiwebview的cookie内容,清除方式如下: NSHTTPCookie *cookie;    NSHTTPCookieStorage *storage = [NSHTTPCookieStorag

Android记住密码后自动登录

/** * * @author alex * @version 2014-7-31下午5:25:45 * */ public class LoginActivity extends Activity { private EditText name; private EditText pass; private CheckBox isRemenber; private CheckBox isLoginSelf; private Button longin; private ProgressDial

RH124-01 熟悉Linux系统的命令行及GNOME3的图形界面

实验环境: 主机名IP地址角色 desktop0.example.com  172.25.0.10/24客户端机器 server0.example.com  172.25.0.11/24服务端机器 classroom.example.com   172.25.254.254/24中央服务器 desktop和server虚拟机上有普通用户student,密码为 desktop和server虚拟机上有root用户,密码为 第一章 熟悉Linux系统的命令行及GNOME3的图形界面 1.1 通过本地终

Linux Server 开机自动登录和自启动程序设置

1. 概述 linux服务器已被广泛使用,大多情况下都可以稳定的运行.但是不排除因其他外在因素例如断电等原因而导致的关机.如果在没有运维或者运维临时无法及时维护时,那么server的自启动程序就显得尤为重要了. 2. Linux Server设置 2.1 供电自启动 主机在意外情况下断电后关闭,当恢复供电希望主机自行启动.可在主机BIOS中进行设置,一般机器都会支持.不同的机型可能描述不太一样.一般在电源管理或者Power Manager中进行设置. 2.2 以某个用户身份自动登录 可以通过修改

Linux expect实现自动登录

expect expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令.当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令.但当不能使用密钥验证的时候,我们就没有办法了.所以,这时候只要知道对方机器的账号和密码就可以通过expect脚本实现登录和远程命令. 引言 目前在公司是一人一台虚拟机,大多数工作都要在虚拟机上完成,为此每天要执行很多次[ssh [email protected]]指令登录虚拟机:有很多方式解决这个问题,如使用xshell.secureCRT