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/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,其中的谈到的内容都没错。)
linux启动后自动登录并运行自定义图形界面程序的更多相关文章
- 在 Linux 实例上自动安装并运行 VNC Server
原文网址:https://help.aliyun.com/knowledge_detail/41181.html?spm=5176.8208715.110.11.4c184ae8mlC7Yy 您可以使 ...
- [分享]在ubuntu9.10下实现开机自动登录并运行自己的图形程序
在ubuntu9.10下实现开机自动登录并运行自己的图形界面程序(本人接触ubuntu时日不长,文中一些说法难免有错误和疏漏之处,还请大家不吝批评指正.)实现步骤分以下三大步:1. 实现ubuntu文 ...
- [Elixir002]节点启动后自动连接其它节点
问题: 如何指定一个节点在启动后自动连接到别的节点上? 这个我们要使用到sys.config,这是erlang的配置文件,这个文件一般都是$ROOT/releases/Vsn下 1. 首先我们要先启动 ...
- linux 命令行远程登录 后台运行命令的方法
linux 命令行远程登录 后台运行命令的方法 http://blog.csdn.net/isuker/article/details/55061595 Linux 技巧:让进程在后台可靠运行的几种方 ...
- springboot启动后自动退出
有时新建的springboot启动后自动退出运行,如图所示: 此种情况大都数是因为pom文件加入了tomcat的依赖,与springboot内嵌的tomcat冲突导致,所以只需将pom文件中的tomc ...
- web容器启动后自动执行程序的几种方式比较
1. 背景 1.1. 背景介绍 在web项目中我们有时会遇到这种需求,在web项目启动后需要开启线程去完成一些重要的工作,例如:往数据库中初始化一些数据,开启线程,初始化消息队 ...
- 在桌面Linux环境下开发图形界面程序的方案对比
在Linux下开发GUI程序的方法有很多,比如Gnome桌面使用GTK+作为默认的图形界面库,KDE桌面使用Qt作为默认的图形界面库,wxWidgets则是另一个使用广泛的图形库,此外使用Java中的 ...
- 【转载】CentOS 7自动以root身份登录gnome桌面 操作系统开机后自动登录到桌面 跳过GDM
CentOS 7自动以root身份登录gnome桌面 ################### #cd /etc/gdm ]# cat custom.conf# GDM configuration st ...
- 详解如何在 Linux 启动时自动执行命令或脚本
我一直很好奇,在启动 Linux 系统并登录的过程中到底发生了什么事情.按下开机键或启动一个虚拟机,你就启动了一系列事件,之后会进入到一个功能完备的系统中,有时,这个过程不到一分钟.当你注销或者关机时 ...
随机推荐
- 问答精华-IntelliJ IDEA快捷键大全
这篇文章介绍了idea的默认快捷键http://www.jikexueyuan.com/blog/229.html 另外:老师将快捷键设置为eclipse的了,你需要在preference里面找到ke ...
- 使用JavaScript实现新闻滚动效果
最近要实现一个滚动新闻效果,在网上查了一些资料,发现基本的实现方法有两种: 使用Marquee标签.这个标签的使用我已经转载了一篇比较详细的文章,这个标签的优点是便于使用,缺点是人们已经逐渐不适用它了 ...
- 关于 Python Iterator 协议的一点思考
转:http://www.jianshu.com/p/dcf83643deeb Python 中有好几种容器或者序列类型:list tuple dict set str,对于这些类型中的内容,往往需要 ...
- Spring Data Jpa 规范接口表
Keyword Sample JPQL snippet And findByLastnameAndFirstname … where x.lastname = ?1 and x.firstname ...
- 如何隐藏storyboard中的top bar
在navigation bar中是没有设置它的隐藏和显示的属性的 那么究竟在什么地方呢,当在它自身的属性中没有找到的情况下,那么就只能去包含它的容器中去寻找了,结果果然找到了.在view的第四个选择器 ...
- Iptables 防火墙开放常见的22,53,80端口
用iptables防火墙 iptables -F # 允许包从22端口进入 iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许从22端口进入的包返回 ...
- canvas-7globleCompositeOperation2.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【PL/SQL练习】控制结构
1.if判断: if-then-end if: SQL> declare v_ename emp.ename%type; v_sal emp.sal%type; begin select ena ...
- js实现自动登陆的按钮
自动按钮,只要实现当移入是提示用户不要在公共地方使用自动登陆 主要用onmouseover函数,本来提示div隐藏,当移入时div显示. <style type="text/css&q ...
- leetcode279. Perfect Squares
learn from DP class Solution { public: int numSquares(int n) { if(n<=0)return 0; int * dp = new i ...