设定Ubuntu启动服务

当我们安装了一些Ubuntu的服务后,有时希望配置它为自动启动或不要自动启动。比如我最近安装了tor和privoxy,我希望设定它们不要自动启动。

怎样做呢?Ubuntu虽然是使用upstart进行启动,但是Ubuntu还是模拟了System V的运行级别体系。首先,服务脚本要出现在/etc/init.d/下面。然后/etc/rc0.d/到/etc/rc6.d/分别代表0到6的运行级别,每个级别对应的目录下面,有着刚才init.d目录里脚本的软链接,但是名字和原来不完全一样,Ubuntu启动的时候就是根据rcX.d/目录里软链的名字做出相应的动作。

比如我的Ubuntu 8.10默认是进入运行级别2的,如果rc2.d/目录下有S20tor软链接,表示启动的时候自动运行tor服务。软链接名字的第一个字符或者是S,或者是K,S表示start,K表示stop。接下来数字NN表示优先级,20是默认值,启动的时候先执行K开头的服务,在其中按NN从小到大执行,接下来执行S开头的服务,也是按NN从小到大执行。比如目录里有K50,K60,S10,S20,那么启动到该运行级别时按K50->K60->S10->S20的顺序执行。优先级的目的是提供服务的依赖性,比如A服务要依赖于B服务的运行,可以设置B为S20,A为S21,然后stop的时候要相反顺序。为什么先执行K呢?那是因为切换运行级别的时候,先关闭服务再开启的顺序不容易乱。

说了这么久,相信读者都明白配置Ubuntu启动服务是否自动运行可以直接编辑软连接的名字了。要自动运行,就是要在相应运行级别下加入S开头的软链接。如果不要自动运行,或者把链接删掉,或者设为K开头的名字。需要指出的是,把软链接删掉是不正确的方法,因为当软件包升级的时候,升级脚本运行update-rc.d命令,就会重新加入那个软链接,因此正确的方法是把S改为K,这样不会受update-rc.d命令影响。进一步要指出的是,我们最好也使用update-rc.d命令去进行软链接的操作。

典型用法一,把服务加到2,3,4,5级别自动运行,加到0,1,6自动停止。

sudo update-rc.d foobar defaults

或者

sudo update-rc.d foobar start 2 3 4 5 . stop 0 1 6 .

典型用法二,把服务设定为启动时自动停止。

sudo update-rc.d -f foobar remove
sudo update-rc.d foobar stop 0 1 2 3 4 5 6 .

值得注意的是,如果任意一个rcX.d/目录已经有某脚本的链接,必须像刚才的命令第一行一样先删除原来的链接,再进行添加。

HTML5乒乓球

Solidot介绍,pong是一个用HTML5和javascript编写的乒乓球游戏,我试了一下,Ubuntu 9.10下的Firefox 3.5及8.10下的3.0都能玩,玩的时候要允许网站弹出窗口。

pong

正如游戏的提示,按下p后,游戏就开始。首先会弹出三个窗口,左右两个表示player,中间那个表示球。用户只要按上下键控制player移动就可以了。比赛是11分制的,pong可以适当打发时间,如果刚好有两人,也可以对战。

Happy New Year

昨晚在北京路划算地买到了喜欢的鞋,然后看着东方卫视播林俊杰,郭富城和黎明,倒数2010的新年!

uname2_6_27_16

新的一年,我的Ubuntu 8.10系统也换了两个新的引擎,内核升级为2.6.27-16,nvidia显卡驱程升级到195,现在用mplayer看高清,可以直接用显卡硬解了。

最后,在新的一年里祝愿大家心想事成,新年快乐!