【linux】Matchbox(一):启动脚本
脚本执行顺序
启动X服务器
/etc/rc5.d/S01xserver-nodm --> …/init.d/xserver-nodm–>
对应进程:
/bin/sh /etc/rc5.d/S01xserver-nodm start background
xinit /etc/X11/Xsession–>
对应进程:
xinit /etc/X11/Xsession – /usr/bin/Xorg -br -pn -nolisten tcp +iglx
/usr/bin/Xorg :0 -br -pn -nolisten tcp +iglx
####启动桌面管理程序Matchbox
/etc/X11/Xsession.d/90xXWindowManager.sh–>
/usr/bin/x-session-manager—>
/etc/matchbox/session
最后启动四个程序
matchbox-window-manager -theme Sato -use_desktop_mode decorated -use_cursor yes
matchbox-desktop
matchbox-panel --titlebar --start-applets showdesktop,windowselector --end-applets clock,battery,keyboard,systray,startup-notify,notify
matchbox-keyboard -d
各个脚本详情
etc/rc5.d/S01xserver-nodm --> …/init.d/xserver-nodm
#!/bin/sh
#
### BEGIN INIT INFO
# Provides: xserver
# Required-Start: $local_fs $remote_fs dbus
# Required-Stop: $local_fs $remote_fs
# Default-Start: 5
# Default-Stop: 0 1 2 3 6
### END INIT INFO. /etc/init.d/functionsfor x in $(cat /proc/cmdline); docase $x inx11=false)echo "X Server disabled" exit 0;;;esac
donecase "$1" instart)# We don't want this script to block the rest of the boot processif [ "$2" != "background" ]; then$0 $1 background &else# work around from /etc/X11/Xinitexport USER=rootexport HOME=/home/rootif [ ! -d $HOME ] && [ -d /root ]; thenHOME=/rootfi. /etc/profileecho "Starting Xserver". /etc/X11/xserver-common
#$XSERVER和$ARGS在xserver-common中定义,$XSERVER=Xorg,下面的步骤是启动X服务器Xorg
#/etc/X11/Xsession是X客户端,也就是桌面管理程序
#xinit的用法为:xinit [[client] options ] [-- [server] [display] options]xinit /etc/X11/Xsession -- `which $XSERVER` $ARGS >/var/log/Xsession.log 2>&1fi;;stop)echo "Stopping XServer"killproc xinit;;restart)$0 stopsleep 1$0 start;;*)echo "usage: $0 { start | stop | restart }";;
esacexit 0
etc/X11/Xsession
#!/bin/sh# this location MUST be consistent with /etc/X11/gpe-login.pre-session
HOME_VOLATILE=/home/$USER/ramdisk
export HOME_VOLATILE. /etc/profileif [ -f $HOME/.profile ]; then. $HOME/.profile
fiif [ -f /usr/bin/dbus-launch ]; then## test for an existing bus daemon, just to be safeif test -z "$DBUS_SESSION_BUS_ADDRESS" ; then## if not found, launch a new oneeval `/usr/bin/dbus-launch --auto-syntax --exit-with-session`echo "D-BUS per-session daemon address is: $DBUS_SESSION_BUS_ADDRESS"fi
fiSYSSESSIONDIR=/etc/X11/Xsession-gpe.dif [ ! -d $SYSSESSIONDIR ]; thenSYSSESSIONDIR=/etc/X11/Xsession.d
fi# Use run-parts to source every file in the session directory; we source
# instead of executing so that the variables and functions defined above
# are available to the scripts, and so that they can pass variables to each
# other.
# Can't use run-parts like this, busybox doesn't support it. Use ls instead
#SESSIONFILES=$(run-parts --list $SYSSESSIONDIR)SESSIONFILES=`ls -X $SYSSESSIONDIR`
if [ -n "$SESSIONFILES" ]; thenfor SESSIONFILE in $SESSIONFILES; do# Test if script is executable first before sourcing itif [ -x "$SYSSESSIONDIR/$SESSIONFILE" ]; then. $SYSSESSIONDIR/$SESSIONFILEfidone
fiexit 0
/etc/X11/Xsession.d/90xXWindowManager.sh
if [ -x $HOME/.Xsession ]; thenexec $HOME/.Xsessionelif [ -x /usr/bin/x-session-manager ]; thenexec /usr/bin/x-session-managerelseexec /usr/bin/x-window-managerfi
/usr/bin/x-session-manager
#!/bin/sh
#
# Very simple session manager for matchbox tools
## Uncomment below to enable parsing of debian menu entrys
# export MB_USE_DEB_MENUS=1if [ -e $HOME/.matchbox/session ]
then
exec $HOME/.matchbox/session
fiif [ -e /etc/matchbox/session ]
then
exec /etc/matchbox/session
fi# Default files to run if $HOME/.matchbox/session or /etc/matchbox/session
# dont exist.matchbox-desktop &
matchbox-panel &
exec matchbox-window-manager $@
/etc/matchbox/session
#!/bin/sh. /etc/formfactor/configif [ "$HAVE_TOUCHSCREEN" = "1" ]; thenSHOWCURSOR="no"
elseSHOWCURSOR="yes"
fiif [ "$HAVE_KEYBOARD" = "1" ]; thenKEYBOARD_APPLET=""
elseKEYBOARD_APPLET="keyboard"
fimatchbox-desktop &# Lines containing feature-[foo] are removed at build time if the machine
# doesn't have the feature "foo".START_APPLETS=showdesktop,windowselector
END_APPLETS=clock,battery,$KEYBOARD_APPLET,systray,startup-notify,notifymatchbox-panel --titlebar --start-applets $START_APPLETS --end-applets $END_APPLETS &exec matchbox-window-manager -theme Sato -use_desktop_mode decorated -use_cursor $SHOWCURSOR $@
相关文章:

java试用(1)hello world
设置环境变量path H:\soft\j2sdk1.4.2_17\bin;H:\soft\eclipse;%path%set CLASSPATH.;H:\soft\j2sdk1.4.2_17\jre\lib;JAVA_HOME: D:\jdk1.5.0PATH: D:\jdk1.5.0\bin;编写程序 Noname1.java (注意:文件名要和class名一样)class Noname1 { public static void…

GAN性能不稳?这九大技术可“镇住”四类缺陷
作者 | Bharath Raj译者 | ang010ela编辑 | 一一出品 | AI科技大本营尽管 GAN 领域的进步令人印象深刻,但其在应用过程中仍然存在一些困难。本文梳理了 GAN 在应用过程中存在的一些难题,并提出了最新的解决方法。使用 GAN 的缺陷众所周知,GAN…

java正则表达式获取指定两个字符串之间内容
xml解析利用正则表达式获取指定两个字符串之间内容 在遇到解析复杂xml的时候,想到大家所想到的都是利用dom4j作为首发工具,但是当遇到层次很多,较为复杂,我们难道还需要从根节点一层一层的解析下去吗?此时不仅代码繁琐…

【linux】Matchbox(二):基本概念
X server X server是Linux系统里面图形接口服务器的简称。Windows系统的界面是这个系统不可分割的一部分,各种窗口操作界面显示都是由系统核心直接管理的,而Linux的图形界面并不是系统的必要组成部分,它可以在无界面的条件下运行。当需要Lin…

Android 控件之ImageSwitcher图片切换器
ImageSwitcher是Android中控制图片展示效果的一个控件,如:幻灯片效果...,颇有感觉啊。做相册一绝 源码下载 一、重要方法 setImageURI(Uri uri):设置图片地址 setImageResource(int resid):设置图片资源库 setImageDra…

【Qt】Qt5.x移植后的环境配置(imx6)
1、环境配置脚本如下 #!/bin/shexport QTDIR=/usr/lib/qt5 export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins export QT_QPA_PLATFORM=eglfs:fb=/dev/fb0 export QT_QPA_GENERIC_PLUGINS=evdevtouch:/dev/input/event1 export QT_QPAFONTDIR=/usr/lib/fonts export QML2_IM…

程序员如何避免“滴滴式裁员”悲剧?
作者 | 徐麟转载自数据森麟(ID:shujusenlin)滴滴于2月15日正式发表裁员公告,想必很多互联网人的朋友圈都已经被这条消息刷屏了,其中最常见的莫过于下面这张图了:此图一出,广大互联网吃瓜群众不禁后背发凉&a…

windows服务搭建及命令总结
1、图解FTP服务器搭建(Windows Server 2008) https://wenku.baidu.com/view/803bdc1759eef8c75fbfb361.html?fromsearch https://www.cnblogs.com/john2017/p/6269671.html 2、WindowsServer2008下搭建ApachePHPMySQL https://wenku.baidu.com/view/2e82b99ea1116c175f0e7cd18…

Linux下的CST和UTC时间的区别
在linux中,用date查看时间的时候显示:2008年 12月 17日 星期三 09:04:14 CSTCST China Standard Time UTC8:00 中国沿海时间(北京时间)世界协调时间(Universal Time Coordinated,UTC)GPS 系统中有两种时间区分,一为UTC,另一为LT&a…

Python之父重回决策层,未来如何发展?
作者 | 豌豆花下猫来源 | Python猫(ID:python_cat)春节假期结束了,大家陆续地重回到原来的生活轨道上。假期是一个很好的休息与调节的机会,同时,春节还有辞旧迎新的本意,它是新的轮回的开端。在…

【Android】adb命令总结
1、adb version 显示ADB工具版本 2、adb devices 查询设备,显示设备序列号 3、adb sideload < file_location> 通过USB进行ROM刷机 4、adb install < apk文件路径> 安装APK 5、adb uninstall <软件名> 卸载软件 6、adb push <本地路径>…

MySQL中char与varchar的区别
字符与字节的区别 一个字符由于所使用的字符集的不同,会并存储在一个或多个字节中,所以一个字符占用多少个字节取决于所使用的字符集注意:char与varchar后面接的数据大小为存储的字符数,而不是字节数(其实是5.0版本以上…

怎样在Red Hat Enterprise Linux 5.4版本上安装GCC?
注意:如果打算使用GUI的方式安装,需要导入GPG-Key(否则在使用GUI时会出现public key for *.rpm is not installed) 请切换到安装光盘目录下: cd /media 可以看到 RHEL* 的目录,然后切换到这个目录中: cd RHEL* 你需要运…

【C++】mingw32-make+cmake:error: ‘nullptr‘ was not declared in this scope解决方法
###问题 使用cmake成功(Configuring done Generating done)后,在cmd终端中执行 mingw32-make报错: error: nullptr was not declared in this scope###原因 nullptr是在c11的新内容。编译时,没有添加对C11的支持。 解…

喜得爱女,吴恩达深情撰文:欢迎你来到新世界!
整理 | 琥珀出品 | AI科技大本营(ID:rgznai100)一个月前,吴恩达冷不丁在Twitter放出了重磅消息: “我们的最新‘成果’ Baby Ng 即将诞生!2019 年 2 月见面!”果然,昨日吴恩达公开了首个小公主降…

FastJson 简单使用
对象、List转JsonUser user new User(); /*JSON 序列化,默认序列化出的JSON字符串中键值对是使用双引号,如果需要单引号的JSON字符串, [eg:String jsonString JSON.toJSONString(map, SerializerFeature.UseSingleQuotes);] *fastjson序…

【数据安全案例】交警计算机系统再遭***,交通违法记录随意删除
根据新浪报道,据新华社10月14日电 利用当网管的机会,破解密码,非法进入交警计算机系统为他人删除车辆交通违法记录牟利。辽宁省鞍山市铁西区检察院透露,当地某公司员工程尚军因涉嫌破坏计算机信息系统罪,已于10月初被依…

开源,还能走多远?
【编者按】在各大厂纷纷拥抱开源的当口,“开源代码面临可持续发展危机”的言论也甚嚣尘上。早期,技术爱好者们“用爱发电”,“他们知道在出问题前,没人会注意到他们,没人会重视他们”。但遗憾的是,很长一段…

使用axis开发web service服务端
一、axis环境搭建 1.安装环境 JDK、Tomcat或Resin、eclipse等. 2.到 http://www.apache.org/dyn/closer.cgi/ws/axis/1_4 下载Axis的jar包 3.将Axis的jar包放入WEB-INF/lib目录下 二、编写web service服务端 1.编写服务 package com.webservice;public class HelloWebservice {…

【Qt】qt打印文件名、函数名、行号
#include <QDebug> #define MyDebug qDebug()<<"[FILE:"<<__FILE__<<",LINE"<<__LINE__<<",FUNC"<<__FUNCTION__<<"]

【Qt】Qt项目常用代码总结
路径 获取当前路径 #include <QCoreApplication> QString appDirPath QCoreApplication::applicationDirPath(); 转换成对应系统路径 返回路径名,使分隔符转换为适合底层操作系统的分隔符。 windows下为“\”; linux下为“/” #include <QDir> a…

滴滴裁员补偿丰厚,员工称裁出幸福感?
整理 | 一一出品 | AI科技大本营(rgznai100)滴滴裁员的“靴子”正在逐步落地。据《财经》报道,滴滴近日已给出裁员的具体赔偿方案:补偿一般为 N1 个月,如果本周能确认,再额外给一个月补偿——这一个月补偿是…

shell编程基础
1. 程序的执行风格 程序编程风格:过去式:以指令为中心,数据服务于指令。对象式:以数据为中心,指令服务于数据。过程式编程有以下特点:1) 顺序执行:指程序在执行的过程中,…

【Qt】QImage使用总结
图像格式转换 由 RGB 格式转换成 BGR 格式 QImage::rgbSwapped() 返回一个QImage,其中所有像素的红色和蓝色组件的值被交换,有效地将RGB图像转换为BGR图像。 QImage image(fileName); QImage bgr = image.rgbSwapped();将彩色图转换成 灰度图 使用QImage::convertToForma…

访问量最高超7百万的Stack Overflow问题竟然是...
整理 | Jane出品 | AI科技大本营(公众号id:rgznai100)Stack Overflow,一个面向开发者的 IT 技术问答网站,很多程序员都会在上面提问,浏览问题,查找技术知识。在 Top Question 页面,我…

CentOS 6.9下配置安装KVM
注意:KVM一切安装和运行都是在root用户下完成的,并且只有root才能支持某些软件。 一、准备工作: 1、查看系统版本、内核版本 ##查看系统版本 # cat /etc/redhat-release CentOS release 6.4 (Final) ##查看内核版本 # uname -a Linux KVM 2.6…

感觉要大病一场了
呵呵,这两天很累,再加上天气的原因,整个人晕乎乎的,其实很累,可就是睡不着, 其实我不知道是身体的累,还是心累了,总之,整个人就是提不起做事的激情来一个人就这样浑浑噩噩…

【视频】使用VLC采集摄像头,以RTSP协议发送流到网络上
VLC官网 http://www.videolan.org/ VLC3.0.1搭建失败 本人使用VLC3.0.1,搭建失败,总报无法打开URL VLC2.1.5搭建成功 VLC2.1.5官网地址及下载地址 www.videolan.org/vlc/releases/2.1.5.html http://get.videolan.org/vlc/2.1.5/win32/vlc-2.1.5-win32.exe 搭建RTSP …

优质中文NLP资源集合,做项目一定用得到!
整理 | Jane出品 | AI科技大本营(公众号id:rgznai100)今天要给大家在推荐 Github 上一个优质的中文 NLP 工具和资源集合项目——funNLP,已经获得了 5.3k Stars,1k Forks。项目作者 杨洋,一枚水博&互联网…

小程序:js获取验证码时(倒计时模块)
代码例子截图最近在上手开发小程序,发现其实小程序要比vue真的要简单太多了,有一套自己的html(WXML),css(WXSS),虽然有些标签不能直接沿用html5的标签来开发,不过内置的标签还是很好记也不多。今天在做公司的项目时&am…