如何添加linux启动项。

如何添加linux启动项。,第1张

LINUX里的添加启动项的方法和WINDOWS不一样

使用chkconfig命令可以查看在不同启动级别下课自动启动的服务(或是程序),命令格式如下:

chkconfig

--list

可能输出如下:

openvpn 0:关闭 1:开启 ...... 6:关闭 (0-6 为启动级别

关闭/开启为相应级别下该服务的自动启动选项)

如果希望对自动启动选项做出改变,命令格式为:

chkconfig --level x name

on/off

z.B. chkconfig --level 5 openvpn

off

以上的命令可以查询系统可提供的服务,如果希望开机时启动某一程序,可采用以下方法:

在~/.bash_profile文件最后一行添加所希望启动的软件名。如:“synergyc

192.168.0.154”

则在开机时自动运行synergyc并与192.168.0.154连接。

以上内容为我个人配置,但是发现了一个问题:FC12在登陆后才完成系统启动,也就是说在进入用户登陆界面的时候synergyc还未能启动。所以,(也许)synergyc不适合被安装在用作无键鼠客户机的linux系统中。

在Red

Hat Linux中自动运行程序

1.开机启动时自动运行程序

Linux加载后, 它将初始化硬件和设备驱动,

然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况下,修改放置在 /etc/rc或 /etc/rc.d 或

/etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序。例如:编辑 /etc/rc.d/rc.local

文件,在文件最末加上一行"xinit"或"startx",可以在开机启动后直接进入X-Window。

2.登录时自动运行程序

用户登录时,bash首先自动执行系统管理员建立的全局登录script

:/etc/profile。然后bash在用户起始目录下按顺序查找三个特殊文件中的一个:/.bash_profile、/.bash_login、

/.profile,但只执行最先找到的一个。

因此,只需根据实际需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序(类似于DOS下的Autoexec.bat)。

3.退出登录时自动运行程序

退出登录时,bash自动执行个人的退出登录脚本/.bash_logout。例如,在/.bash_logout中加入命令"tar

-cvzf c.source.tgz *.c",则在每次退出登录时自动执行 "tar" 命令备份 *.c

文件。

4.定期自动运行程序

Linux有一个称为crond的守护程序,主要功能是周期性地检查

/var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些文件中的命令。用户可以通过crontab

命令来建立、修改、删除这些命令文件。

例如,建立文件crondFile,内容为"00 9 23 Jan *

HappyBirthday",运行"crontab

cronFile"命令后,每当元月23日上午9:00系统自动执行"HappyBirthday"的程序("*"表示不管当天是星期几)。

5.定时自动运行程序一次

定时执行命令at

与crond 类似(但它只执行一次):命令在给定的时间执行,但不自动重复。at命令的一般格式为:at [ -f file ] time

,在指定的时间执行file文件中所给出的所有命令。也可直接从键盘输入命令:

代码如下:

$ at 12:00

at>mailto Roger -s ″Have a

lunch″ <plan.txt

at>Ctr-D

Job 1 at 2000-11-09 12:00

2000-11-09

12:00时候自动发一标题为"Have a

lunch",内容为plan.txt文件内容的邮件给Roger。

#!/bin/bash

RESTART="........"

#里面写相应服务代码

START="......."

STOP=".........."

case "$1"

in

restart)

$RESTART

echo "......"

start)

$START

echo

"......"

STOP)

$STOP

echo "......"

*)

echo "Usage: $0

{restart ¦ start ¦ stop}"

exit 1

esac

exit 1

脚本写完要修改一下权限

chmod u+x

test.sh

首先,linux随机启动的服务程序都在/etc/init.d这个文件夹里,里面的文件全部都是脚本文件(脚本程序简单的说就是把要运行的程序写到一个文件里让系统能够按顺序执行,类似windows下的autorun.dat文件),另外在/etc这个文件夹里还有诸如名为rc1.d,

rc2.d一直到rc6.d的文件夹,这些都是linux不同的runlevel,我们一般进入的X

windows多用户的运行级别是第5级,也就是rc5.d,在这个文件夹下的脚本文件就是运行第5级时要随机启动的服务程序。需要注意的是,在每个rc

(1-6).d文件夹下的文件其实都是/etc/init.d文件夹下的文件的一个软连接(类似windows中的快捷方式),也就是说,在

/etc/init.d文件夹下是全部的服务程序,而每个rc(1-6).d只链接它自己启动需要的相应的服务程序!

要启动scim(某一程序),我们首先要知道scim程序在哪里,用locate命令可以找到,scim在/usr/bin/scim这里,其中usr表示是属于用户的,bin在linux里表示可以执行的程序。这样,我就可以编写一个脚本程序,把它放到/etc/init.d里,然后在rc5.d里做一个相应的软链接就可以了。

这个脚本其实很简单,就两行:

#!/bin/bash

/usr/bin/scim

第一行是声明用什么终端运行这个脚本,第二行就是要运行的命令。

还需要注意的一点是,在rc5.d里,每个链接的名字都是以S或者K开头的,S开头的表示是系统启动是要随机启动的,K开头的是不随机启动的。这样,你就可以知道,如果我要哪个服务随机启动,就把它名字第一个字母K改成S就可以了,当然,把S改成K后,这个服务就不能随机启动了。因此,我这个链接还要起名为SXXX,这样系统才能让它随机启动

添加自启动脚本

首先把自己的脚本放到/etc/init.d中,,然后执行如下指令:

update-rc.d

a start 90 2 3 4 5 . stop 90 0 1 6 .

其中a就是你的脚本,注意有两个点。

a脚本范例。

代码如下:

#!/bin/sh

# Source function

library.

if [ -f /etc/init.d/functions ]then

.

/etc/init.d/functions

else

.

/lib/lsb/init-functions

fi

MOD=/a.ko

start()

{

echo -n $"insert a

kernel module: "

/sbin/insmod $MOD

echo

}

stop()

{

echo -n

$"remove a kernel module: "

/sbin/rmmod a -f

echo

}

[ -f $MOD ] ||

exit 0

# See how we were called.

case "$1"

in

start)

start

stop)

stop

restart|reload)

stop

start

*)

echo

$"Usage: $0

{start|stop|restart|reload}"

update-rc.d命令,是用来自动的升级System

V类型初始化脚本,简单的讲就是,哪些东西是你想要系统在引导初始化的时候运行的,哪些是希望在关机或重启时停止的,可以用它来帮你设置。这些脚本的连接位于/etc/rcn.d/LnName,对应脚本位于/etc/init.d/Script-name.

1、设置指定启动顺序、指定运行级别的启动项:

update-rc.d

<service> start <order> <runlevels>

2、设置在指定运行级中,按指定顺序停止:

update-rc.d

<service> stop <order> <runlevels>

3、从所有的运行级别中删除指定的启动项:

update-rc.d -f

<script-name> remove

例如:

update-rc.d script-name start 90 1 2 3 4 5 . stop

52 0 6 .

start 90 1 2 3 4 5 . :

表示在1、2、3、4、5这五个运行级别中,按先后顺序,由小到大,第90个开始运行这个脚本。

stop 52 0 6 .

:表示在0、6这两个运行级别中,按照先后顺序,由小到大,第52个停止这个脚本的运行。

如果在 /etc/init.d 中加入一个

script,还须要制作相关的 link

在 /etc/rc*.d 中。K 开头是 kill , S 开头是 start ,

数字顺序代表启动的顺序。(SysV)

update-rc.d 可以帮你的忙。

例:

在 /etc/init.d 中建立一个叫作 zope 的

script , 然后

update-rc.d zope defaults

就会产生以下链结::

代码如下:

Adding system startup for /etc/init.d/zope

...

/etc/rc0.d/K20zope ->../init.d/zope

/etc/rc1.d/K20zope ->

../init.d/zope

/etc/rc6.d/K20zope ->../init.d/zope

/etc/rc2.d/S20zope

->../init.d/zope

/etc/rc3.d/S20zope ->

../init.d/zope

/etc/rc4.d/S20zope ->../init.d/zope

/etc/rc5.d/S20zope

->../init.d/zope

其他进阶使用方式请 man update-rc.d

一. 安装

1.首先假设你已经安装好了Windows XP,并且分区格式是FAT32;

2.进行安装Redhat之前的筹备工作:用一些分区工具(如PQmagic)在你的硬盘上腾出一些空闲空间(指尚未划分的空间,既没有指定文件系统,又没有分配盘符),空间的大小根据你选择的Redhat的安装方式来定,一般5G就足够了;

3.用Redhat 的安装光盘引导系统,根据提示先后配置完语言、键盘、鼠标、升级检查、安装类型页面;

4.进入磁盘分区设置页面后,选择“自动分区”,在接下来的页面中选择“保存所有分区,使用空闲空间”;点击“下一步”之后安装程序会为你创建好Linux系统所需的各个分区(包括一个/boot分区,一个根分区,和一个交换区);一般无需修改直接进入后面的设置即可;

注:在磁盘分区设置页面你会看到一个列表框,里面是你硬盘的列表——

Linux用来标识硬盘的方法与Windows不同,如果你用的是IDE硬盘,那么你的第一块硬盘就被标识为/dev/hda 第二块为/dev/hdb 依此类推;而且第一块硬盘的第一个分区被标识为/dev/hda1第二个分区则为/dev/hda2依此类推;如果是SCSI硬盘则是/dev/sda, /dev/sdb的形式。

5.接下来就是两冤家共存的关键所在——引导程序设置页面,安装程序为你提供了两种用来引导系统的程序——GRUB和LILO,默认是GRUB;无须另改引导程序,选用GRUB,并且选中“配置高级选项”;进入下一步高级选项页面。

注:GRUB(GRand Unified Bootloader)是一个功能强大的引导程序。GRUB 能够通过连锁载入机制实现引导Windows——GRUB载入Windows的引导程序,然后Windows的引导程序再载入Windows。

LILO (Linux LOader) 是用于 Linux 的灵活多用的引导装程序。它并不依赖于某一特定文件系统,能够从软盘和硬盘引导 Linux 内核映像,甚至还能够引导其它 *** 作系统。

6.在高级选项的页面,确定安装位置选择了主引导记录(MBR);

7.按照提示完成以后页面的设置,重启后你就可以看到一个漂亮的引导界面,选择不同的条目可以分别进入两个 *** 作系统!

[--NTFS--]

如果你的Windows XP系统使用的是NTFS分区,就麻烦一些,因为无论是Linux还是GRUB都不能理解NTFS;上面说到的几步都一样,只是在第6步要选择“引导分区的第一个扇区”,并且记下安装位置的标识(这里以/dev/hda9为例)另外在安装的最后要按提示做一张引导软盘;这样安装完成之后你才能进入 Linux,需要进行以下几步:

1.用软盘引导进入Linux;

2.插入一张空白软盘;

3.在shell中输入:

mount -t msdos /dev/fd0 /mnt

dd if=/dev/hda9 of=/mnt/bootrec bs=512 count=1

umount /mnt

4.重启进入Windows XP,把软盘上的bootrec文件拷贝到C盘,修改boot.ini文件,在[operating systems]段中加上 C:\bootrec="Linux" 这样一行

修改后的boot.ini形如:

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect

C:\bootrec="Linux"

5.重启后会出现选择菜单,选择Linux条目即可进入Linux。

二. 共享文件

1.Linux 下共享Windows FAT32分区中的文件

很简单,使用mount命令即可,

基本形式如下:

mount –t vfat /dev/hda1 /mnt/windows

使用前要先建立好/mnt/windows 目录

并且确定你要挂载的windows分区所对应的Linux标识,可以运行hwbrowser硬件浏览器查看确认。

不过你可能会发现,挂载过来的windows分区中的中文文件名无法正常显示;

解决方法如下:

打开/etc/fstab 文件(该文件中描述了在系统启动时自动挂载的内容)

添加如下一行:

/dev/hda1 /home/pogge/winc vfat defaults,iocharset=gb2312,umask=0 0 0

其中/dev/hda1 为你要挂载的windows分区的linux标识,/home/pogge/winc

为挂载位置,一定要先建好/home/pogge/winc 目录

2.Linux下共享Windows NTFS分区中的文件

Linux的内核中尚未加入NTFS的支持(以后的内核版本可能会加入),但有些个别版本的Linux已经加入了对NTFS的支持,比如Mandrake。

开源社区中有一个Linux NTFS 项目组,你可以用该组开发的模块为Redhat Linux 9.0 加入NTFS支持。该项目组的网站是http://linux-ntfs.sourceforge.net/;

此外还有一些在Linux下访问NTFS的第三方软件。

限于篇幅,笔者就不对此问题详细叙述了,如果将来有机会的话可以写个关于这个问题的专题。

3.Windows下共享Linux分区中的文件

Microsoft是不可能在系统中提过对Linux文件系统的支持的,尽管Linux有对Windows的支持!所以只好借助第三方软件了;

explore2fs 是一个免费的基于图形界面的在Windows中访问Linux ext2 或ext3分区的软件。

下载下来后解压后直接运行explore2fs.exe即可得到一个类似windows资源管理器的一个界面,使用起来非常简单,在此不再赘述。

三. 重装Windows XP后恢复Linux引导

通常下Linux的引导程序GRUB装在MBR中,而重装Windows时,有可能会重写MBR

导致GRUB丢失。

不过恢复起来也很简单

1. 用Redhat安装光盘启动后按F5

2. 输入linux rescue [Enter] 进入救援模式

3. 在救援模式配置完,并将你的linux系统挂载在临时目录/mnt/sysimage 中后输入chroot /mnt/sysimage 改变根分区的位置

4. 输入/sbin/grub-install /dev/hda [Enter] 重新将GURB写入MBR中

5. 输入exit [Enter] exit [Enter] 退出重启即可看到GRUB引导界面

如果没有引导光盘就用先前做得引导软盘进入Linux直接做第4步即可

如果GRUB 装在了引导分区的第一个扇区上

只需参照[--NTFS--] 小节中的5个步骤即可。

运行级就是 *** 作系统当前正在运行的功能级别。这个级别从1到6 ,具有不同的功能。

不同的运行级定义如下

# 0 - 停机(千万不能把initdefault 设置为0 )

# 1 - 单用户模式 # s init s = init 1

# 2 - 多用户,没有 NFS

# 3 - 完全多用户模式(标准的运行级)

# 4 - 没有用到

# 5 - X11 多用户图形模式(xwindow)

# 6 - 重新启动 (千万不要把initdefault 设置为6 )

这些级别在/etc/inittab 文件里指定。这个文件是init 程序寻找的主要文件,最先运行的服务是放在/etc/rc.d 目录下的文件。在大多数的Linux 发行版本中,启动脚本都是位于 /etc/rc.d/init.d中的。这些脚本被用ln 命令连接到 /etc/rc.d/rcn.d 目录。(这里的n 就是运行级0-6)

chkconfig 命令有五项功能:添加服务,删除服务,列表服务,改变启动信息以及检查特定服务的启动状态。

语法为:

chkconfig --list [name]

chkconfig --add name

chkconfig --del name

chkconfig [--level levels] name

chkconfig [--level levels] name

chkconfig 没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回 true,否则返回false。 --level 选项可以指定要查看的运行级而不一定是当前运行级。

如果在服务名后面指定了on,off 或者 reset,那么 chkconfig 会改变指定服务的启动信息。on 和 off 分别指服务在改变运行级时的启动和停止。reset 指初始化服务信息,无论有问题的初始化脚本指定了什么。

对于 on 和 off 开关,系统默认只对运行级 3,4, 5有效,但是 reset 可以对所有运行级有效。指定 --level 选项时,可以选择特定的运行级。

需要说明的是,对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init 不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。

选项介绍:

--level levels

指定运行级,由数字 0 到 7 构成的字符串,如:

--level 35 表示指定运行级3 和5。

要在运行级别3、4、5中停运 nfs 服务,使用下面的命令:chkconfig --level 345 nfs off

--add name

这个选项增加一项新的服务,chkconfig 确保每个运行级有一项 启动(S) 或者 杀死(K) 入口。如有缺少,则会从缺省的init 脚本自动建立。

--del name

用来删除服务,并把相关符号连接从 /etc/rc[0-6].d 删除。

--list name

列表,如果指定了name 那么只是显示指定的服务名,否则,列出全部服务在不同运行级的状态。

运行级文件

每个被chkconfig 管理的服务需要在对应的init.d 下的脚本加上两行或者更多行的注释。

第一行告诉 chkconfig 缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。

第二行对服务进行描述,可以用 跨行注释。

例如,random.init 包含三行:

# chkconfig: 2345 20 80

# description: Saves and restores system entropy pool for

# higher quality random number generation.

表明 random 脚本应该在运行级 2, 3, 4, 5 启动,启动优先权为20,停止优先权为 80。

好了,介绍就到这里了,去看看自己目录下的/etc/rc.d/init.d 下的脚本吧。

设置自启动服务:chkconfig --level 345 nfs on

配置启动项方法

命令行模式

#service servicename status是当前状态

#chkconfig --list servicename是查看启动状态,也就是是否开机自动启动

#chkconfig --list列出所有开机启动项#chkconfig --level 345 xx off 把不想启动的项345级别设置为off(关闭)(服务名xx)

界面模式终端中直接输入#ntsysv

Linux启动项说明

apmd--apmd用来监视系统用电状态,并将相关信息通过syslogd写入日志。也可以用来在电源不足时关机

arpwatch--用来维护以太网物理地址和ip地址的对应关系

atd--运行用户用at命令调度的任务。也在系统负荷比较低时运行批处理任务

autofs--当您需要时自动转载文件系统,而当您不需要时自动卸载

chargen--tcp版本的chargen server

chargen-udp--udp版本的chargen server

crond--周期地运行用户调度的任务。比起传统的unix版本添加了不少属性,而且更安全,配置更简单

daytime--tcp版本的daytime server

daytime-udp--udp版本的daytime server

echo--tcp版本的echo server

echo-udp--udp版本的echo server

eklogin--接受rlogin会话鉴证和用kerberos5加密的一种服务

finger--用于应答finger请求的服务

gpm--为文本模式下的linux程序提供了鼠标的支持。它也支持控制台鼠标的拷贝,粘帖 *** 作以及d出式菜单 (必须)

gssftp--接受可被kerberos5验证的ftp连接

httpd--http是著名的www服务器,可用来提供html文件以及cgi动态内容服务

identd--提供验证身份的方法

ipchains--ipchains包过滤防火墙

iptables--iptables包过滤防火墙

ipvsadm--调用ipvsadm来建立和维护ipvs路由选择表

isdn--启用isdn(综合服务数字网)服务

kadmin--更改在主控kdc中使用本机的kadmin工具,或透过kadmin服务来完成

kdcrotate--设置配置文件/etc/krb5.con中的kdcs表项

keytable--该程序的功能是转载您在/etc/sysconfig/keyboards里说明的键盘映射表

klogin--接受bsd方式的rlogin会话,但需要使用kerbeos5验证

kprop--是否允许kdc接收来的master kdc的升级

krb5-telnet--允许普通的telnet登陆,但也可使用kerberos5验证

krb524--是以改变kerberos5到kerberosIV的赁证

krb5kdc--开启kerberosIV和5所需的连接以获得赁证

kshell--接受rshell命令鉴证和用kerberos加密的服务

kudzu--运行硬件检测,并可选择性地设置硬件变化

lpd--lpd是系统打印守护程序,负责将lpr等程序提交给打印作业

netfs--负责装载/卸载nfs、samba、ncp文件系统

network--激活/关闭启动时的各个网络接口 (必须)

nfs--nfs是一个流行的基于tcp/ip网络的文件共享协议.该服务提供了nfs文件共享服务

nfslock--提供nfs文件上锁功能

nscd--该服务负责密码和组的查询,并且缓冲查询结果

portmap--portmap用来支持rpc连接,rpc被用于nfs以及nis等服务

postgresql--postgresql关系数据库引擎

random--保存和恢复系统的高质量随机数生成器,这些随机数是系统一些随机行为提供的

rlogin--rlogin程序服务,提供来自远程信任主机的注册功能

routed--该守护程序支持rip协议的自动ip路由表维护.rip主要使用在小型网络上,大一点的网络就需要复杂一点的协议

rsh--提供rcmd程序或者rsh程序的服务

rstatd--rstat协议允许网络上的用户获得同一网络上各机器的性能参数

rsync--对ftp服务的一个很好的附加,允许循环码求和校验等

rusersd--该服务使网络用户可以定位同一网络上的其他用户

rwalld--rwall协议允许远程用户向在同一系统中活跃着的终端发送消息,类似wall的本地行为

rwhod--允许远程用户获得运行rwho精灵的机器上所有已登录用户的列表,与finger类似

smb--启动和关闭smbd和nmbd精灵程序以提供smb网络服务

snortd--一个轻量级的网络入侵检测工具

swat--samba网络配置工具,可以通过流览器的901端口连接使用swat

syslog--syslog是 *** 作系统提供一种机制,守护程序通常使用这些机制将各种信息写到各个系统日志文件 (必须)

telnet--提供telnet服务,使用未加密的用户/密码组进行验证

time--tcp版本的rfc 868 time server

time-udp--udp版本的rfc 868 time server

webmin--webmin是基于web的集系统管理与网络管理于一身的强大管理工具

xfs--在引导和关闭时启动和停上x字体服务,并可能重新生成字体表 (必须)

xinetd--因特网 *** 作服务程序。提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全,监控网络对各种它管理的服务的需求,并在要的时候启动相应的服务程序

ypbind--实现网络信息服务的服务器端

redhat 下常用服务介绍

anacron 不考虑系统downtime期间的cron服务

amd 自动安装NFS守候进程

apmd 高级电源管理

arpwatch 记录日志并构建一个在LAN接口上看到的以太网地址和IP地址对数据库

atd 用于at和batch的服务

autofs 自动安装管理进程automount,与NFS相关,依赖于NIS

crond 为Linux下自动安排的进程提供运行服务.

Gpm 提供字符模式下对鼠标的支持.

Keytable 用于装载键盘镜像

Kudzu 硬件探测器

Netfs 安装和卸载NFS、SAMBA和NETWARE网络文件系统

Network 激活已配置网络接口的脚本程序

Nfslock NFS锁定

Pcmcia 安装pcmcia卡(一般用于笔记本电脑)

Sshd OpenSSH服务器

Syslog 一个让系统引导时启动syslog和klogd系统日志守候里程的脚本

Xfs Xwindow字型服务器,为本地和远程X服务器提供字型集

Xinetd 支持多种网络服务的核心守候程序。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11826727.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存