刚刚,参照着Debian的帮助,解决了开机登录上网的问题。由于我们学校的教育网登录要用一个认证软件,Linux下面没有对应的,我用的这个登录软件是mystar(应该是某些人自己开发的),不过这个mystar只有启动,而且不判断重复启动,没有后台模式,读取配置文件mystar.conf又必须在当前目录下,感觉上很麻烦,所以一直没去弄。
最近,看Debian参考手册时候,终于清楚了Debian的启动脚本放置办法。/etc/init.d就是放置所有脚本的地方,然后/rc?.d/下面是实际启动的地方,都是/etc/init.d/下脚本的链接。根据/etc/init.d/README的解释,我下了Debian-Policy包,看init.d下脚本的写法(9.3 System run levels and init.d scripts)。主要是一定要实现start,stop,restart,force-reload(还有一个reload方法可选),然后可以由update-rc.d来生成链接(我直接用了rcconf……)。附了一个样例,我照葫芦画瓢搞定了mystar的登录。
/etc/init.d/mystar内容如下:
#!/bin/sh
#
# A shell for start mystar to log on network
#test -x /usr/local/bin/mystar || exit 0
case "$1" in
start)
echo -n "Starting Log in network: "
start-stop-daemon --start --exec /usr/local/bin/mystardaemon.sh \
--chdir /usr/local/bin/
echo "."
;;
stop)
echo -n "Stop from log in network"
;;
restart)
;;
force-reload|reload)
;;
*)
echo "Usage: /etc/init.d/mystar" \
"{start}" >&2
exit 1
;;
esac
exit 0
由于是后台启动,需要用&,所以在/usr/local/bin下面我写了一个mystardaemon.sh用来启动mystar:
/usr/local/bin/mystardaemon.sh如下:
#!/bin/sh
cd /usr/local/bin
./mystar &
都很简单的。而且……其实这个也根本不符合Debian的规范。我到现在为止都不知道如何把mystar给停下来……kill不掉……不知道该怎么弄了……所以启动脚本真正的只能启动了……最后就简单了,执行rcconf,把mystar勾上就行了。等有时间再研究一下能不能写得更规范些。另外,这个mystar似乎还是有点呆,看能不能找到资料把它重写一下作为练手……