创建一个最简单的Linux随机启动服务(xiaoxia.org)

分类:vps相关评论:No Comments作者:bake日期:发布时间:February 18, 2012

网上有不少关于如何让Linux自动运行自己编写的脚本或者程序的方法,但是大多数都是把命令写到/etc/rc.d/rc.local或者/etc/rc.local里,这样虽然能够实现随机运行,但是并不够灵活。不能像mysql,apache等服务一样能够使用service命令或者调用init.d下的脚本启动、关闭或者重启进程。例如,


service mysql restart
service apache2 stop


或者


/etc/init.d/mysql restart
/etc/init.d/apache2 stop


因为不同的Linux发行版本,对后台服务的处理方式不大一样,所以下面以Ubuntu系统为例,看看如何写一个简单的随机启动服务。

准备好一个需要随机启动的程序,例如/root/proxy.py,设置可执行属性,确保可以通过输入绝对路径直接执行。


root@localhost:~# chmod +x proxy.py
root@localhost:~# /root/proxy.py
Loaded 0 hosts.
Proxy over h2.edu.bj.ie.sogou.com.
Please set your browser's proxy to ('::', 1998).


编写一个启动控制脚本,以proxy为例,建立/etc/init.d/proxy文本文件,输入下面的内容:


#!/bin/sh

case "$1" in
start)
        start-stop-daemon --start --background --exec /root/proxy.py
;;
stop)
        start-stop-daemon --stop --name proxy.py
esac

这是一个简单的shell脚本,case .. in是用来根据调用参数进行不同的操作,start-stop-daemon是一个可以管理daemon进程的程序,要查看它的详细说明,可以运行man start-stop-daemon。start的时候,使用--exec指定要执行的文件,stop的时候,使用--name根据进程名字来使用killall结束匹配的进程。

接着,设置脚本文件属性,设置可执行标记。


root@localhost:~# chmod 755 /etc/init.d/proxy


这样子,就可以使用service命令来启动和关闭进程了,例如启动进程如下:


root@localhost:~# service proxy start
root@localhost:~# ps aux|grep proxy
root       353  1.4  1.9   8644  5212 ?        S    09:50   0:00 /usr/bin/python /root/proxy.py
root       355  0.0  0.2   1900   596 pts/0    S+   09:50   0:00 grep --color=auto proxy

关闭进程,


root@localhost:~# service proxy stop
root@localhost:~# ps aux |grep proxy
root       365  0.0  0.2   1900   592 pts/0    S+   09:51   0:00 grep --color=auto proxy

到这里,一个Linux服务的进程控制脚本已经写好了,但是要实现随机启动,还需要一个步骤。
Linux开机的时候,不是直接运行/etc/init.d下的所有脚本的,而是根据不同的runlevel来执行/etc/rc$runlevel.d下的脚本。这里的runlevel是用以区别系统的运行方式(例如单用户的runlevel,多媒体桌面的runlevel,服务器的runlevel都不同)。

在Ubuntu里,可以使用update-rc.d来把/etc/init.d/proxy安装到各个runlevel中。更多关于update-rc.d的说明,请参见man update-rc.d。


root@localhost:~# update-rc.d proxy defaults 99
update-rc.d: warning: /etc/init.d/proxy missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>

 Adding system startup for /etc/init.d/proxy ...
   /etc/rc0.d/K99proxy -> ../init.d/proxy
   /etc/rc1.d/K99proxy -> ../init.d/proxy
   /etc/rc6.d/K99proxy -> ../init.d/proxy
   /etc/rc2.d/S99proxy -> ../init.d/proxy
   /etc/rc3.d/S99proxy -> ../init.d/proxy
   /etc/rc4.d/S99proxy -> ../init.d/proxy
   /etc/rc5.d/S99proxy -> ../init.d/proxy

update-rc.d后面有三个参数,分别是/etc/init.d下的脚本名字,默认安装方式,运行的优先级。优先级的数字越大,表示越迟运行,这里我们把自己写的服务放在最后运行。

如果要卸载随机启动的服务,执行


update-rc.d -f proxy remove


在update-rc.d安装的时候提示了警告信息,是因为我们写的/etc/init.d/proxy太简陋了,连LSB的信息也没有提供。


update-rc.d: warning: /etc/init.d/proxy missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>


只需要做一些小改动,就可以避免那个警告了。如下:


#!/bin/sh
### BEGIN INIT INFO
# Provides:          proxy
# Required-Start:    $remote_fs
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start or stop the HTTP Proxy.
### END INIT INFO

case "$1" in
start)
        start-stop-daemon --start --background --exec /root/proxy.py
;;
stop)
        start-stop-daemon --stop --name proxy.py
esac

到此,一个最简单的随机启动服务写好了,看起来文章挺长的,但其实也就几个命令而已。
在下次开机启动的时候,proxy.py就会以root用户身份被自动运行。

Debian安装PPTP和L2TP一键安装包

分类:一键安装脚本评论:2 Comments作者:bake日期:发布时间:December 29, 2011

第一步:确认拥有Root权限

第二步:下载、运行脚本


wget --no-check-certificate http://www.8ke.in/soft/pptpandl2tpondebian.sh

sh pptpandl2tpondebian.sh

测试用户名与密码为:test / 8ke,记录于 /etc/ppp/chap-secrets 。enjoy it.

如果重启后用不了

编辑/etc/rc.local文件
把第一行改成
#!/bin/bash
然后去掉exit 0那行就行了
这个是Debian启动脚本的问题

L2TP VPN 一键安装包安装和使用(支持OpenVZ)(centos)

分类:一键安装脚本评论:11 Comments作者:bake日期:发布时间:December 10, 2011

【介绍】


L2TP是一种工业标准的Internet隧道协议,功能大致和PPTP协议类似,比如同样可以对网络数
据流进行加密。不过也有不同之处,比如PPTP要求网络为IP网络,L2TP要求面向数据包的点对点连接;PPTP使用单一隧道,L2TP使用多隧
道;L2TP提供包头压缩、隧道验证,而PPTP不支持。


【安装】


一键安装包已经在Hostitek提供的VPS(OpenVZ)下测试通过。


0、检测虚拟网卡(TUN/TAP)支持


OpenVZ的VPS客户需要检测虚拟网卡(TUN/TAP)支持如果不支持即使安装成功也没用。(Xen等可跳过此步)


检测是否支持tun模块


执行命令:


cat /dev/net/tun


如果返回信息为:cat: /dev/net/tun: File descriptor in bad state 说明正常


检测是否支持ppp模块


执行命令:


cat /dev/ppp

如果返回信息为:cat: /dev/ppp: No such device or address 说明正常
pptp1.jpg


一、下载一键安装包脚本


wget http://soft.kwx.gd/vpn/l2tp_centos.sh sh ./l2tp_centos.sh

执行以上命令后如下图:

L2TP-1.jpg

1、intall VPN service
全新安装L2TP VPN。
2、repaire VPN service
修复L2TP VPN 服务。
3、add VPN user
新建VPN帐号。


二、安装L2TP VPN 一键包


首次安装选择1即可。回车以后则会自动下载并编译安装。

安装完毕后,如下图。

L2TP-2.jpg

默认帐号(VPN username)为vpn,密码(VPN password)是系统随机生成的。


三、修复L2TP VPN 一键包


若出现问题,可在运行sh ./l2tp_CentOS.sh后,选择2修复。建议修复完成以后重启一次VPS。

L2TP-3.jpg


四、新建用户


若要添加VPN用户,可在运行sh ./l2tp_centos.sh后,选择3添加

L2TP-4.jpg

如上图。

input user name(填入VPN帐户名)。
input password(填入VPN密码)。

最后回车即可添加成功。


五、删除帐号


若需要删除VPN帐号,则需要按以下步骤操作


1、进入目录


cd /etc/ppp

2、修改chap-secrets文件


L2TP-5.jpg

如上图,一行为一个帐号,可按相应格式添加和删除。

博客更换域名

分类:闲言碎语评论:4 Comments作者:bake日期:发布时间:December 4, 2011

原来的域名www.8ke.info更换为www.8ke.in
info域名被垃圾站给强*奸了,印象不好
于是换成.in域名,看着舒服些

Tags: none