2011年2月

一般系统的运行级别是在   /etc/inittab   里面指定的。有一行是类似
id:5:initdefault:
或者
id:3:initdefault:
的,这里的数字就是系统的默认运行级别。假设是   5。

启动服务的是依靠   /etc/init.d/   下的脚本启动的。这些都是普通的   shell   脚本,系统在调用的时候,如果是启动服务,则传入   start   作为参数;stop   表示停止;restart   表示重启。因此你可以写一个脚本,比如简单的如这样:

#!/bin/sh

ARG=$1

case   $ARG   in  
start):
nohup   /path/to/your/program     &
;;
stop):
pkill   program
;;
restart):
pkill   program
nohup   /path/to/your/program   &
;;
esac

把这个脚本放在   /etc/init.d   里面,譬如   /etc/init.d/your_prog
然后加入相应运行级别的链接:在   5   级启动则  
ln   -s   /etc/init.d/your_prog   /etc/rc5.d/S100your_prog
ln   -s   /etc/init.d/your_prog   /etc/rc0.d/K100your_prog
这里两个数字都可以用对应目录里最大的数字,因为没有别的服务依赖你的服务。
这样表示,当系统进入   init   level   5   的时候启动你的程序,进入   init   level   0   的时候停止你的程序。

一个同事最近几次发现mount了一个网络共享磁盘后, 就无法umount, 老是提示:device is busy, 服务又不能停止的。

看看于是总结了一下几点。

1.是否在使用本挂载目录,现在路径在挂载目录下,会出现本提示。

2.也可以使用 shell>fuser  -m 挂载目录  查到pid后,直接kill掉。

   或者 shell>fuser  -k 挂载目录        直接结束掉。(有的版本没有这个选项)

3.如果以上方法还是提示设备在使用中

 shell>umount -fl  挂载目录

4.最绝的方法就是重启机器,有自启动挂载的话,在/etc/fstab里面去掉,重启解挂。。