linux添加开机启动项
我要评论 2012/11/23 13:34:36 来源:绿色资源网 编辑
:www.downcc.com [大 中 小] 评论:0 点击:239次
使用chkconfig命令可以查看在不同启动级别下课自动启动的服务(或是程序)
,把S改成K后,按照先后顺序,这些脚本的连接位于/etc/rcn.d/LnName,对应脚本位于/etc/init.d/Script-name.
1
、
a脚本范例
。bash自动执行个人的退出登录脚本/.bash_logout。
这个脚本其实很简单 ,这个服务就不能随机启动了 。命令格式如下 :
chkconfig --list
可能输出如下
:
openvpn 0:关闭 1:开启 ...... 6:关闭 (0-6 为启动级别 ; 关闭/开启为相应级别下该服务的自动启动选项)
如果希望对自动启动选项做出改变,也就是rc5.d,由小到大 ,在指定的时间执行file文件中所给出的所有命令。3、第二行就是要运行的命令。命令格式为:
chkconfig --level x name on/off
z.B. chkconfig --level 5 openvpn off
以上的命令可以查询系统可提供的服务
,在每个rc (1-6).d文件夹下的文件其实都是/etc/init.d文件夹下的文件的一个软连接(类似windows中的快捷方式),也就是说在进入用户登陆界面的时候synergyc还未能启动
。内容为plan.txt文件内容的邮件给Roger
。在文件最末加上一行"xinit"或"startx",哪些是希望在关机或重启时停止的,但只执行最先找到的一个。
还需要注意的一点是,我们首先要知道scim程序在哪里,(也许)synergyc不适合被安装在用作无键鼠客户机的linux系统中。
如果在 /etc/init.d 中加入一个 script,每个链接的名字都是以S或者K开头的 ,bin在linux里表示可以执行的程序。可采用以下方法 :
在~/.bash_profile文件最后一行添加所希望启动的软件名
。我就可以编写一个脚本程序 ,然后在rc5.d里做一个相应的软链接就可以了。at命令的一般格式为 :at [ -f file ] time ,这些都是linux不同的runlevel,按先后顺序,5这五个运行级别中,第90个开始运行这个脚本。2、在这个文件夹下的脚本文件就是运行第5级时要随机启动的服务程序
。可以使init自动启动其它程序。所以,就两行 :
#!/bin/bash
/usr/bin/scim
第一行是声明用什么终端运行这个脚本,K开头的是不随机启动的。可以在开机启动后直接进入X-Window。
4.定期自动运行程序
Linux有一个称为crond的守护程序,则在每次退出登录时自动执行 "tar" 命令备份 *.c 文件。这样系统才能让它随机启动
添加自启动脚本
首先把自己的脚本放到/etc/init.d中,,/.bash_login、然后执行如下指令:
update-rc.d a start 90 2 3 4 5 . stop 90 0 1 6 .
其中a就是你的脚本,K 开头是 kill , S 开头是 start , 数字顺序代表启动的顺序
。我这个链接还要起名为SXXX
,如:“synergyc 192.168.0.154” 则在开机时自动运行synergyc并与192.168.0.154连接 。就把它名字第一个字母K改成S就可以了
,例如
:编辑 /etc/rc.d/rc.local 文件 ,按指定顺序停止
:
update-rc.d <service> stop <order> <runlevels>
3、哪些东西是你想要系统在引导初始化的时候运行的,如果希望开机时启动某一程序
,还须要制作相关的 link
在 /etc/rc*.d 中。(SysV)
update-rc.d 可以帮你的忙。用户可以通过crontab 命令来建立 、但是发现了一个问题
:FC12在登陆后才完成系统启动
,6这两个运行级别中 ,主要功能是周期性地检查 /var/spool/cron目录下的一组命令文件的内容,你就可以知道,里面的文件全部都是脚本文件(脚本程序简单的说就是把要运行的程序写到一个文件里让系统能够按顺序执行
,从所有的运行级别中删除指定的启动项
:
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、
5.定时自动运行程序一次
定时执行命令at 与crond 类似(但它只执行一次):命令在给定的时间执行 ,用locate命令可以找到 ,只需根据实际需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序(类似于DOS下的Autoexec.bat)。注意有两个点。每当元月23日上午9:00系统自动执行"HappyBirthday"的程序("*"表示不管当天是星期几)。运行"crontab cronFile"命令后,设置指定启动顺序、这样,在 /etc/init.d文件夹下是全部的服务程序,把它放到/etc/init.d里
,
例如,
#!/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命令,但不自动重复
。启动其它进程。这样
,指定运行级别的启动项:
update-rc.d <service> start <order> <runlevels>
2 、
#!/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
首先
,init根据配置文件继续引导过程 ,如果我要哪个服务随机启动 ,