发布时间:2014-09-05 16:53:54作者:知识屋
本节主要讲解一下Linux开机自启动SVN,上节我们讲解了Windows下开机自动启动SVN服务,通过本节的介绍你可以做一个对比,看一下在两种操作系统中开机自动启动SVN服务的区别,希望本节对你学习有所帮助。
在Redhat上配置好svnserve,通过Myeclipse访问,实现版本控制。但是开启svn服务是手工输入命令来启动,这样每次重启服务器后都得重新输一次命令,太麻烦。于是就有了新问题:如何让SVN随着服务器开机自己启动?
先了解一下Linux的自动运行程序
*********************************华丽的分割线****************************************************
在RedHatLinux中自动运行程序
1.开机启动时自动运行程序
Linux加载后,它将初始化硬件和设备驱动,然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况下,修改放置在/etc/rc或/etc/rc.d或/etc/rc?.d目录下的脚本文件,可以使init自动启动SVN其它程序。例如:编辑/etc/rc.d/rc.local文件,在文件最末加上一行"xinit"或"startx",可以在开机启动后直接进入X-Window。
2.登录时自动运行程序
用户登录时,bash首先自动执行系统管理员建立的全局登录script:/ect/profile。然后bash在用户起始目录下按顺序查找三个特殊文件中的一个:/.bash_profile、/.bash_login、/.profile,但只执行最先找到的一个。因此,只需根据实际需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序(类似于DOS下的Autoexec.bat)。
3.退出登录时自动运行程序
退出登录时,bash自动执行个人的退出登录脚本/.bash_logout。例如,在/.bash_logout中加入命令"tar-cvzfc.source.tgz*.c",则在每次退出登录时自动执行"tar"命令备份*.c文件。
4.定期自动运行程序
Linux有一个称为crond的守护程序,主要功能是周期性地检查/var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些文件中的命令。用户可以通过crontab命令来建立、修改、删除这些命令文件。例如,建立文件crondFile,内容为"00923Jan*HappyBirthday",运行"crontabcronFile"命令后,每当元月23日上午9:00系统自动执行"HappyBirthday"的程序("*"表示不管当天是星期几)。
5.定时自动运行程序一次
定时执行命令at与crond类似(但它只执行一次):命令在给定的时间执行,但不自动重复。at命令的一般格式为:at[-ffile]time,在指定的时间执行file文件中所给出的所有命令。也可直接从键盘输入命令:
$at12:00
at>mailtoRoger-s″Havealunch″Ctr-D
Job1at2000-11-0912:00
2000-11-0912:00时候自动发一标题为"Havealunch",内容为plan.txt文件内容的邮件给Roger。
#!/bin/bash
RESTART="........"#里面写相应服务代码
START="......."
STOP=".........."
case"$1"in
restart)
$RESTART
echo"......";;
start)
$START
echo"......";;
STOP)
$STOP
echo"......";;
*)
echo"Usage:$0{restart¦start¦stop}"
exit1
esac
exit1
脚本写完要修改一下权限chmodu+xtest.sh
首先,linux随机启动SVN的服务程序都在/etc/init.d这个文件夹里,里面的文件全部都是脚本文件(脚本程序简单的说就是把要运行的程序写到一个文件里让系统能够按顺序执行,类似windows下的autorun.dat文件),另外在/etc这个文件夹里还有诸如名为rc1.d,rc2.d一直到rc6.d的文件夹,这些都是linux不同的runlevel,我们一般进入的Xwindows多用户的运行级别是第5级,也就是rc5.d,在这个文件夹下的脚本文件就是运行第5级时要随机启动的服务程序。需要注意的是,在每个rc(1-6).d文件夹下的文件其实都是/etc/init.d文件夹下的文件的一个软连接(类似windows中的快捷方式),也就是说,在/etc/init.d文件夹下是全部的服务程序,而每个rc(1-6).d只链接它自己启动需要的相应的服务程序!
要启动scim(某一程序),我们首先要知道scim程序在哪里,用locate命令可以找到,scim在/usr/bin/scim这里,其中usr表示是属于用户的,bin在linux里表示可以执行的程序。这样,我就可以编写一个脚本程序,把它放到/etc/init.d里,然后在rc5.d里做一个相应的软链接就可以了。
这个脚本其实很简单,就两行:
#!/bin/bash
/usr/bin/scim
第一行是声明用什么终端运行这个脚本,第二行就是要运行的命令。
还需要注意的一点是,在rc5.d里,每个链接的名字都是以S或者K开头的,S开头的表示是系统启动是要随机启动的,K开头的是不随机启动的。这样,你就可以知道,如果我要哪个服务随机启动,就把它名字第一个字母K改成S就可以了,当然,把S改成K后,这个服务就不能随机启动sVN了。因此,我这个链接还要起名为SXXX,这样系统才能让它随机启动。
*********************************华丽的分割线****************************************************
了解这些后,作法就很简单了。
1.创建执行脚本svn.sh(/root路径下),其内容很简单,如下:
#!/bin/bash
svnserve-d--listen-port8080-r/home/svnroot/repository
2.添加可执行权限
命令行运行#chmodug+x/root/svn.sh
3.添加自动运行
打开(vi或gedit)/etc/init.d/rc.d/rc.local,在最后添加一行内容如下:/root/svn.sh保存退出。
4.检查
重启服务器,使用ps-ef看看svn进程是否启动了。嘿嘿,问题搞定了,以后开机就自动启动svn了。
作者“小草”
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能