2005年08月08日

   晚上打开电脑,进了好久没有用的win2000系统。不经意的点了foobar,却传来了似水年华的原声,应该是寒假时听的list,下意识的想去关掉它,却晚了。自己好像回到了去年冬天,想起一个人在深夜,一集一集的看似水年华,一集一集的想念一个人。如今,这段感情却真的变成似水年华了。

   今天心里特别的烦,一只接一只的抽烟,心情却没有一支接一支的慢慢转晴。心里小心翼翼藏好的东西这时却在莫名的翻腾,希望自己就这样慢慢沉下去,一直到底。却还是去了你的楼下,看到你卧室的淡淡黄色灯光。我送你的画是不是依然还挂在你房间的墙壁?你说我们结束了,南京就是一座空城,而你却还要在这座倒塌了的废墟上继续歌唱。这让我想起我一直没有看懂的花样年华结尾,一座断壁残垣的城市,现在,我明白了。喉咙里想喊点什么,却已转身。如今,只有指间的烟了解自己。我想我需要沉淀。需要坚持。初八,

   听说台风要来南京,心里竟然带着些许的期待。喜欢欣赏大自然的力量,喜欢那种知道自己多么渺小时的震撼。记得小时候的家在一个风口,每年春秋都会刮很大很大的风,人都站不住的那种大风。会遮天盖日。狂风夹杂着戈壁的黄沙石子肆虐,那时大人们都要抱着电线杆走路,而我们几个小子却最爱在风最大时跑去感受她的力量。当自己被吹得横冲直撞东倒西歪的时候,就是我们最快乐的瞬间。

   后来,到了南京,便喜欢上了闪电,经常一个人跑去动力楼楼顶看。南方的闪电和家里的不同,北方由于干燥,闪电只会在高空中转悠,有种傲慢气质。相比,这边的闪电却霸气十足,从天际直穿云层劈到地面,带着咆哮的雷声,拖着曲折却又笔直的尾巴,瞬间闪亮黑暗寂静的大地,然后一切又瞬间坠入黑暗。每每这时,心中就会有种东西在翻腾,真想脱了衣服放声咆哮。就如阿甘正传里那个瘸腿上尉在惊涛骇浪中将自己绑到桅杆的顶端,发疯似的与暴风雨对骂一样。还好自己没有做太多坏事,要不就是雷公老人家出门忘了带隐形,自己现在还可以坐在电脑边瞎扯。

    这两天下午一直很有规律的打雷,闪电,下雨,然后就莫名其妙的停下来。很配自己最近的心情。后来就听要有台风过境,自然欣喜,自小还没有经历过台风,想必一定很震撼,连例会时导师都说如果在龙卷风的中心进行抽气,破坏掉它的旋流,就可以破环整个龙卷风的结构。有预报说台风晚上7点登陆南京,正好朋友约了喝酒,吃饭前大家还在说今天可以见识一下台风了。几杯马尿下肚,就忘了,等我们喝的差不多时发现已经过了9点,而外面只是在飘雨滴,几人都是失望至极呀。不过最失望的因该还不是我,吴兄被单位调入防风抢险特别行动小组,结果蹲了一宿,也没见着台风的影,还因此拉了场饭局,呵呵,现在还在家里补觉呢。

  

2005年08月03日

   又来听这首"walk on" ,在这有点寂静,却是燥热的午夜。有点惊讶于自己的平静,只是指间的烟,在慢慢燃尽。

"Walk On"

And love is not the easy thing
The only baggage you can bring
And love is not the easy thing
The only baggage you can bring
Is all that you can’t leave behind

And if the darkness is to keep us apart
And if the daylight feels like it’s a long way off
And if your glass heart should crack
And for one second you turn back
Oh no, be strong

Walk on, walk on
What you got they can’t steal it
No, they can’t even feel it
Walk on, walk on
Stay safe tonight

You’re packing a suitcase for a place none of us has been
A place that has to be believed to be seen
You could have flown away
A singing bird in an open cage
Who will only fly, only fly for freedom

Walk on, walk on
What you’ve got they can’t deny it
Can’t sell it or buy it
Walk on, walk on
You stay safe tonight

And I know it aches, how your heart it breaks
You can only take so much
Walk on, walk on

Home, hard to know what it is if you’ve never had one
Home, I can’t say where it is but I know I’m going home
That’s where the hurt is

And I know it aches and your heart it breaks
And you can only take so much
Walk on

Leave it behind
You’ve got to leave it behind
All that you fashion
All that you make
All that you build
All that you break
All that you measure
All that you feel
All this you can leave behind
All that you reason
It’s only time
All that you bear
No more than a feeling on my mind
All that you see
All that you wear
All that you sense
All that you scheme
All you dress up
All that you’ve seen
All you create
And all that you wreck
All that you hate

“除非征得你的同意,没有人可以伤害你!” 最近看到这句话,有点感触,记下来,只是希望没有征得同意就被自己伤害的人,forgive me!

2005年07月06日

  在windows下Tkinter为python的默认安装.而在linux下安装Tkinter必需手动修改/modules/setup配置文件,去掉相应选项前的注释符#. 否则会不能import _tkinter
 setup修改例:
# The _tkinter module.
#
# The command for _tkinter is long and site specific.  Please
# uncomment and/or edit those parts as indicated.  If you don’t have a
# specific extension (e.g. Tix or BLT), leave the corresponding line
# commented out.  (Leave the trailing backslashes in!  If you
# experience strange errors, you may want to join all uncommented
# lines and remove the backslashes — the backslash interpretation is
# done by the shell’s "read" command and it may not be implemented on
# every system.

# *** Always uncomment this (leave the leading underscore in!):
 _tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \
# *** Uncomment and edit to reflect where your Tcl/Tk libraries are:
    -L/usr/local/lib \
# *** Uncomment and edit to reflect where your Tcl/Tk headers are:
    -I/usr/local/include \
# *** Uncomment and edit to reflect where your X11 header files are:
    -I/usr/X11R6/include \
# *** Or uncomment this for Solaris:
#    -I/usr/openwin/include \
# *** Uncomment and edit for Tix extension only:
#    -DWITH_TIX -ltix8.1.8.2 \
# *** Uncomment and edit for BLT extension only:
#    -DWITH_BLT -I/usr/local/blt/blt8.0-unoff/include -lBLT8.0 \
# *** Uncomment and edit for PIL (TkImaging) extension only:
#     (See http://www.pythonware.com/products/pil/ for more info)
#    -DWITH_PIL -I../Extensions/Imaging/libImaging  tkImaging.c \
# *** Uncomment and edit for TOGL extension only:
#    -DWITH_TOGL togl.c \
# *** Uncomment and edit to reflect your Tcl/Tk versions:
    -ltk8.4 -ltcl8.4 \
# *** Uncomment and edit to reflect where your X11 libraries are:
    -L/usr/X11R6/lib \
# *** Or uncomment this for Solaris:
#    -L/usr/openwin/lib \
# *** Uncomment these for TOGL extension only:
#    -lGL -lGLU -lXext -lXmu \
# *** Uncomment for AIX:
#    -lld \
# *** Always uncomment this; X11 libraries to link with:
    -lX11

再运行
./configure
setup
setup install

2005年06月19日
1.选择一台计算机作为该win32集群的服务器,在该机安装win2000 advanced server,并配
置域。
配置期间会自动要求安装DNS服务器。
2.将该集群其他的计算机加入该域。
3.安装rshd协议
需要在该集群的所有计算机上安装rshd协议,
3.1 将fluent6.1.22安装程序\ntbin\ntx86\文件夹下的rshd.exe文件拷贝至win2000系统
文件夹下(例如c:\winnt)
3.2 进入命令行模式,键入并运行以下命令
rshd -install
如果看到"rshd install complete"则表示rshd协议已成功安装。
3.3 进入管理工具\协议 ,找到rsh 协议并启动
4.将所有集群内计算机各自的fluent安装文件夹共享,(可能只需要将开启fluent 并行计
算的host机器需要安装和共享,不过没试过)
5 撰写集群配置文件
需写一个集群配置文件,名字可自取,如hosts.txt,其内容为所有参与计算计算机的ip和
计算机名称
格式为:ip0 hostname0
ip1 hostname1
...
注意第一行必须为启动计算机器的ip和计算机名,详见fluent帮助。
例: 在名为s的机器上启动并行计算,使用集群内的四台计算机,则hosts.txt配置文件
写为
192.168.0.100s
192.168.0.88st
192.168.0.2c
192.168.0.5x
6 开始计算
启动fluent,并开启(spawn)计算节点(即在对应的client机器上创建fluent计算进程)

在命令行内键入:
fluent version -tX -pnet -cnf=hosts path -path=fluent 6.1.22 path
其中 version 代表你希望启动的fluent版本 如2d, 2ddp ,3d,3ddp等
-tX 中的X代表你希望开启的计算节点个数,如3个就写-t3
-cnf=hosts path 中的"hosts path"代表先前创建的hosts.txt集群配置文件的路
径,如c:\hosts.txt
-path=fluent 6.1.22 path中的"fluent 6.1.22 path"代表所使用的fluent 的路

例:
使用s机上的fluent开启4个计算节点的计算,hosts.txt文件位于s机器的c:\hosts.t
xt
hosts.txt配置如下
192.168.0.100s
192.168.0.88st
192.168.0.2c
192.168.0.5x
则在命令行下键入
fluent 3d -t4 -pnet -cnf=c:\hosts.txt -path=\\server\fluent.inc
fluent 6.1.22 3d版会启动,并且自动开始spawn计算节点。结束后就可以读入网格
,进行分区(自动或手动),开启计算。

注:1 如果命令行下fluent 不能启动,则是没有添加fluent 路径到系统路径
2 可以在fluent 启动后再手动开启计算节点,在/parallel/netware/config
2005年06月10日

  Eric 为一款使用PyQt开发的Python IDE,它不仅包含一般IDE的基本功能如关键字显示,自动补齐,参数提示等,而且还整合了单元测试模块和重构,弥补了Python的高级综合开发环境.
  Eric使用 Qt, pyQt, Sip,QScintilla库,所以编译安装前要确保正确安装这些库.
1. Qt
  一般Linux安装都会默认安装QT,可以到/usr/lib/查看是否有Qt目录,否则请使用添加删除程序来安装(redhat下)
或者下载Qt rpm包安装

2. Sip
   pyQt使用Sip来实现python中自动封装Qt C++库,可到Riverbank
Computing
, here.下载
我使用的是sip-4.2,解压后进行编译安装
   编译安装步骤:

	python configure.py
make
make install

3 QScintilla
  Qscintilla 为一基于qt的文本文件编辑库,它有代码突显,自动补齐,参数提示等特殊功能,eric使用它作为编辑器.
可到Riverbank
Computing
,下载.
    编译安装步骤:
    cd qt
    qmake qscintilla.pro
    make
    cp qextscintilla*.h $QTDIR/include
    cp qscintilla*.qm $QTDIR/translations
    ldconfig

4PyQt
  Python中封装QT的包 可在 Riverbank : PyQt  下载
  安装步骤:
 python configure.py
 make
 make install

5Eric
 python install.py





2005年06月09日


l 压缩工具



tar,gzip的使用方法



1.压缩一组文件为tar.gz后缀。



# tar cvf backup.tar /etc



#gzip -q backup.tar







# tar cvfz backup.tar.gz /etc/



2.释放一个后缀为tar.gz的文件。



#gunzip backup.tar.gz



#tar xvf backup.tar







# tar xvfz backup.tar.gz



3.用一个命令完成压缩



#tar cvf – /etc/ | gzip -qc > backup.tar.gz



4.用一个命令完成释放



# gunzip -c backup.tar.gz | tar xvf –



5.如何解开tar.Z的文件?



# tar xvfz backup.tar.Z







# uncompress backup.tar.Z



#tar xvf backup.tar



6.如何解开.tgz文件?



#gunzip backup.tgz



7.如何压缩和解压缩.bz2的包?



#bzip2 /etc/smb.conf



这将压缩文件smb.conf成smb.conf.bz2



#bunzip2 /etc/smb.conf.bz2



这将在当前目录下还原smb.conf.bz2为smb.conf



注: .bz2压缩格式不是很常用,你可以man bzip2


l 安装工具



RPM是世界著名的Red Hat公司推出的一种软件包安装工具,全称为Redhat Package


Manager。RPM的出现提供了一种全新的软件包安装方法,在方便性上甚至超过了


微软的Windows。下面我就介绍一下RPM的基本使用方法。



1.安装一个包



# rpm -ivh < rpm package name>



2.升级一个包



# rpm -Uvh < rpm package name>



3.移走一个包



# rpm -e < rpm package name>



4.安装参数



–force 即使覆盖属于其它包的文件也强迫安装



–nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。



5.查询一个包是否被安装



# rpm -q < rpm package name>



6.得到被安装的包的信息



# rpm -qi < rpm package name>



7.列出该包中有哪些文件



# rpm -ql < rpm package name>



8.列出服务器上的一个文件属于哪一个RPM包



#rpm -qf 文件名称



9.可综合好几个参数一起用



# rpm -qil < rpm package name>



10.列出所有被安装的rpm package



# rpm -qa < rpm package name>



11.列出一个未被安装进系统的RPM包文件中包含有哪些文件?



# rpm -qilp < rpm package name>

1.把安装盘的第一张放到光驱,然后重新启动机器,在BOIS中把系统用光驱来引导。


2.等安装界面出来后,按[F4]键,也就是linux rescue模式。


3.一系列键盘以及几项简单的配制,过后就[继续]了。。。这个过程,我不说了,比较简单。


4.然后会出现这样的字符


sh#


5.我们就可以操作GRUB了。。。哈。。。只要能出现这样的,以后都是小Case了,我就是不说 ,谁也能明白,地球人都知道了。。。。


sh#grub


会出现这样的字符


grub>


我们就可以在这样的字符后面,输入


grub>root (hdX,Y)


grub>setup (hd0)


如果成功会有一个successful……


请留意root和(hdX,Y)之间有一个空格,这里的X,如果是一个盘,就是0,如果你所安装的linux的根分区在第二个硬盘上,那X就是1了;Y,就是装有linux系统所在的根分区。 setup (hd0)就是把GRUB写到硬盘的MBR上。




或者使用grub_for_dos从dos引导Grub


grub_for_dos的最新版(V0.0.5)可以从这里得到:


ftp://ftp.cosoft.org.cn/incoming/grub_for_dos-0.0.5.tar.gz



http://www.linuxeden.com/download/softdetail.php?softid=1026





下载地址:



http://newdos.yginfo.net/grubdos.htm


ftp://ftp.cosoft.org.cn/incoming/grub_for_dos-0.2.0pre6.tar.gz


http://www.ipdown.com/grub4dos/


在 sourceforge 上的开发页:


http://sourceforge.net/projects/grub4dos/

2005年06月08日

Linux启动全线提速法


作者:丁大勇 发文时间:2004.03.18



Linux系统是十分优秀的操作系统,但启动时间长是该系统的缺点之一。那么能否通过一些设置来缩短Linux系统的启动时间呢?当然可以。本文将向读者
展示如何在不牺牲Linux系统可用性的前提下,缩短系统的启动时间。要实现这一目标,需要了解系统的各类服务及它们之间的从属关系,进而使它们在条件允
许的前提下同时启动,从而大大节省系统启动时间。



准备工作



如果想采用本文介绍的方法对Linux系统进行设置,首先要熟悉Linux系统的设置语言。对系统的启动过程进行设置是一项比较危险的行为,容易造成系统
无法启动。一旦发生这种情况,最好重新启动系统后选择单一用户模式,将系统还原并重启。当然,最重要的是在设置前备份重要数据。



其次,建议用户最好在对本机系统进行修改前,先进行修改测试。如果用户只有一台计算机,那么这里建议使用用户模式Linux系统(UML)进行测试。
UML是一个内核补丁,它可以将Linux系统的内核转译成为二进制,以便用户可以像使用普通软件那样运行Linux系统。一旦出现意外情况,损失的只是
UML,而原系统却可安然无恙。



Linux系统的启动顺序和runlevel



Linux系统的启动包括多个步骤,这里主要介绍一下内核加载后的系统启动步骤。用户可以通过运行/sbin/runlevel命令来查看系统目前的
runlevel。runlevel是Linux系统用来区别系统高级启动设置类型的数字。这些数字十分常见,它们中的绝大多数都有着明确的含义。以
Red Hat Linux系统为例,它的runlevel主要有以下几种(见表1):









init如何初始化系统



init可以通过一个ASCⅡ设置文件得知如何改变系统的runlevel。通常情况下该设置文件可以指引init来执行/etc/rc.d/rc命令,从而获得runlevel的相关信息。



系统服务



用户所需要的各种系统服务都是由rc指令程序来启动的。系统潜在的服务纷繁复杂。大多数Linux系统通常只提供sshd(SecureShell服务)、syslog(系统日志工具)和lpd(打印服务)等功能。



用户可以从/etc/rc.d/目录中找到所有的服务。如果打开这个目录,会发现许多服务只是一种外壳程序,它只是引导其它程序来完成工作。也许有人会
问,rc程序是如何知道每个runlevel要运行哪些程序呢?答案是在/etc/rc.d/目录下面与init.d/目录并列的还有一些目录,它们各自
对应着自己的runlevel。它们的名称为rc*.d/,例如runlevel
5就是/etc/rc.d/rc5.d/。每个rc*.d/目录中包含着两个符号链接,这些链接可以连接到/etc/init.d/目录中的指定服务程
序。



动手改造



服务的启动和终止



如果用户决定要启动Linux系统并进入图形模式(runlevel
5),那么当init引导rc指令程序运行并将runlevel的级数告知它时,rc指令程序将对/etc/rc.d/rc5.d/进行查看,接着它将执
行从该目录中找到所有链接。rc指令程序执行链接的过程可分为两部分,首先它将执行所有名称以“K”打头的链接,将“stop”参数传递给它们,并停止这
些链接指向的所有服务。这些服务停止后,rc指令程序将执行所有名称以“S”打头的链接,并将“start”参数传递给它们,启动这些链接所指向的服务。



另外,rc指令程序可以根据链接名称的两个十进制数,确定链接的执行顺序,数字小的先执行。


下面将举一个例子,帮助用户加深理解。当用户启动系统进入runlevel
5时,首先要执行的链接是K05saslauthd,由于它是以“K”打头的,而且后两位十进制数要小于其它以“K”打头的链接。第一个要执行的启动链接
是S05kudzu。最后执行的将是S99local。下面是runlevel 5状态下指向程序的链接。



# cd /etc/rc.d/rc5.d


# ls -al


total 8


drwxr-xr-x 2 root root 4096 Jul 15 09:29 .


drwxr-xr-x 10 root root 4096 Jun 21 08:52 ..


lrwxrwxrwx 1 root root 19 Jan 1 2000 K05saslauthd -> ../init.d/saslauthd


lrwxrwxrwx 1 root root 20 Feb 1 2003 K15postgresql -> ../init.d/postgresql


lrwxrwxrwx 1 root root 13 Jan 1 2000 K20nfs -> ../init.d/nfs


lrwxrwxrwx 1 root root 14 Jan 1 2000 K24irda -> ../init.d/irda


lrwxrwxrwx 1 root root 17 Jan 1 2000 K35winbind -> ../init.d/winbind


lrwxrwxrwx 1 root root 15 Jan 1 2000 K50snmpd -> ../init.d/snmpd


……


lrwxrwxrwx 1 root root 18 Feb 8 11:15 K92iptables -> ../init.d/iptables


lrwxrwxrwx 1 root root 19 Feb 1 2003 K95firstboot -> ../init.d/firstboot


lrwxrwxrwx 1 root root 15 Jan 1 2000 S05kudzu -> ../init.d/kudzu


lrwxrwxrwx 1 root root 14 Jun 21 08:55 S09isdn -> ../init.d/isdn


lrwxrwxrwx 1 root root 17 Jan 1 2000 S10network -> ../init.d/network


lrwxrwxrwx 1 root root 16 Jan 1 2000 S12syslog -> ../init.d/syslog


lrwxrwxrwx 1 root root 17 Jan 1 2000 S13portmap -> ../init.d/portmap


lrwxrwxrwx 1 root root 17 Jan 1 2000 S14nfslock -> ../init.d/nfslock


lrwxrwxrwx 1 root root 18 Jan 1 2000 S17keytable -> ../init.d/keytable


lrwxrwxrwx 1 root root 16 Jan 1 2000 S20random -> ../init.d/random


lrwxrwxrwx 1 root root 16 Jun 21 08:52 S24pcmcia -> ../init.d/pcmcia


lrwxrwxrwx 1 root root 15 Jan 1 2000 S25netfs -> ../init.d/netfs


lrwxrwxrwx 1 root root 14 Jan 1 2000 S26apmd -> ../init.d/apmd


lrwxrwxrwx 1 root root 16 Jan 1 2000 S28autofs -> ../init.d/autofs


lrwxrwxrwx 1 root root 14 Jan 1 2000 S55sshd -> ../init.d/sshd


lrwxrwxrwx 1 root root 20 Jan 1 2000 S56rawdevices -> ../init.d/rawdevices


lrwxrwxrwx 1 root root 16 Jan 1 2000 S56xinetd -> ../init.d/xinetd


lrwxrwxrwx 1 root root 14 Feb 1 2003 S58ntpd -> ../init.d/ntpd


lrwxrwxrwx 1 root root 13 Jun 21 10:42 S60afs -> ../init.d/afs


……


lrwxrwxrwx 1 root root 18 Jan 1 2000 S80sendmail -> ../init.d/sendmail


lrwxrwxrwx 1 root root 13 Jan 1 2000 S85gpm -> ../init.d/gpm


lrwxrwxrwx 1 root root 15 Mar 22 08:24 S85httpd -> ../init.d/httpd


……


lrwxrwxrwx 1 root root 14 Jul 15 09:29 S98wine -> ../init.d/wine


lrwxrwxrwx 1 root root 13 Feb 8 17:26 S99db2 -> ../init.d/db2


lrwxrwxrwx 1 root root 11 Jun 21 08:52 S99local -> ../rc.local





如果用户想暂时终止某一runlevel的一项服务,只要删除相对应的链接就行了。然而,对链接进行手动设置是一项繁重而又易错的工作,但有一个十分有用的帮手,它的名字叫chkconfig。



分辨没被终止的服务



要想了解哪些服务没有被终止,那么用户需要运行/sbin/chkconfig -list命令。下面展示了命令执行后的显示结果,用户可以清楚地看到每一行有八项内容。chkconfig命令还可以用来开启或终止某一服务。



afs 0:off 1:off 2:off 3:on 4:off 5:on 6:off


anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off


apmd 0:off 1:off 2:on 3:on 4:on 5:on 6:off


atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off


autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off


crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off


………





上面左起第一列显示的是服务的名称,接下来的第二列显示的是所在的runlevel和当前状态。例如ntpd(网络时间无交互后台程序)服务被设定只在runlevel 3和runlevel 5开启,而sshd服务则在runlevel 2、3、4和5开启。



也许用户会发现,在runlevel 0和runlevel 6没有启动的服务,是因为runlevel 0 和runlevel 6表示系统终止,当然没有服务了。



从属关系



正如上文提到的,系统启动时要逐一运行每个runlevel的服务。也许用户很容易想到,如果可以使多个服务同时运行,必然会节省大量的系统启动时间。但不幸的是这种方法行不通,原因是各项服务之间都存在着从属关系。



传统的Linux系统并不能给用户指明服务间的从属关系。



现在通过一个简单的例子讲解如何明确服务间的从属关系。从ntpd服务需要一个网络基础可以得出结论——ntpd服务要依靠网络服务,这一关系可以用下面的语句表示:



ntpd:network





用户可以确定netfs服务也要依靠网络服务,autofs服务也要依靠网络服务,现在就可以列出一个简单的从属关系表:



ntpd : network


netfs : network


autofs : network





它的含义是一旦网络服务开启完毕,可以同时运行ntpd、netfs和autofs服务。假设启动每项服务需要10秒的时间,用传统的方法启动上面的四项
服务就需要40秒的时间,而使用上面提到的方法只需要20秒就够了。事实上,各项服务的启动时间是不同的,但道理是一样的。



再例如,lpd服务(S60lpd)要在网络服务后运行,但对于一个拥有喷墨打印机接口的家用系统而言,不必先建立网络连接再安装打印机。在这种情况下,
更合理的状况应该是打印机服务先于网络服务。另外crond服务(S90crond)同样应该在网络服务后运行。但是,除非用户有可以使用远端计算机文件
的cron文件,否则crond服务根本不必在网络服务前运行。



可以看出,有些服务要依靠其它服务才能运行,有些服务是完全独立的,它们运行与否与其它服务毫无关系。因此,可以使这些与其它服务无从属关系的服务同时运行。当这些服务启动后,用户就可以启动以它们为运行前提的其它服务,这样环环相扣、循序渐进,直到启动整个系统。



听起来这似乎是一个十分复杂的过程,但是已经为用户准备了一件十分好用的工具,这就是“Make”程序。“Make”程序一般与编译软件一起使用,它可以为用户提供所需要的完整架构,用户只需要告诉它各项服务间的从属关系就行了。



结论



综上所述,缩短系统启动时间的方法就是先搞清各项服务间的从属关系,然后编排合理的启动次序,尽可能使限制条件相同的服务同时启动,当然别忘了只启动需要的服务。由于Linux系统的种类不同,这种方法产生的效果也不尽相同,大家在使用过程中还要具体问题具体分析。