在linux下设置开机自动启动程序的方法_第1页
在linux下设置开机自动启动程序的方法_第2页
在linux下设置开机自动启动程序的方法_第3页
在linux下设置开机自动启动程序的方法_第4页
在linux下设置开机自动启动程序的方法_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、下面用自启动 apache 为例 ;自启动脚本 :/usr/local/apache2/bin ;./apachectl start文件位于 /etc/rc.d/init.d 下 , 名为 apached, 注意要可执行 .#chmod +x /etc/rc.d/init.d/apached / 设置文件的属性为可执行#ln -s /etc/rc.d/init.d/apached /etc/rc3.d/S90apache / 建立软连接 , 快捷方式#ln -s /etc/rc.d/init.d/apached /etc/rc0.d/K20apache在 Red Hat Linux 中自动运行

2、程序1开机启动时自动运行程序Linux加载后,它将初始化硬件和设备驱动,然后运行第一个进程in it 。in it根据配置文件 继续引 导过程 ,启 动其它 进程 。通 常情况 下, 修改放 置在 /etc/rc 或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使 init 自动启动其它程序。 例如:编辑/etc/rc.d/rc.local文件,在文件最末加上一行 "xi nit" 或"startx",可以在开机启动后直接进入 X Window。2登录时自动运行程序用户登录时, bash 首先自动执行系统管理员建立的全局登录 sc

3、ript :/etc/profile 。然后 bash 在用户起始目录下按顺序查找三个特殊文件中的一个: /.bash_profile、/.bash_login、/.profile ,但只执行最先找到的一个。因此,只需根据实际需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序(类似于 DOS下的 Autoexec.bat )。3退出登录时自动运行程序退出登录时, bash 自动执行个人的退出登录脚本 /.bash_logout 。例如,在 /.bash_logout 中加入命令 "tar cvzf c.source.tgz .c" ,则在每次退出登录时自动执行 &

4、quot;tar" 命令备 份 .c 文件。4定期自动运行程序Linux 有一个称为 crond 的守护程序,主要功能是周期性地检查 /var/spool/cron 目录下的 一组命令文件的内容, 并在设定的时间执行这些文件中的命令。 用户可以通过 crontab 命令 来建立、修改、删除这些命令文件。例如,建立 文件 crondFile ,内容为 "00 9 23 Jan HappyBirthday" ,运行 "crontab cronFile" 命令后,每当元月 23 日上午 9:00 系统自动执行 "HappyBirthday&

5、quot; 的程序( ""表 示不管当天是星期几) 。5定时自动运行程序一次定时执行命令 at 与 crond 类似(但它只执行一次) :命令在给定的时间执行, 但不自动重复。 at 命令的一般格式为: at f file time ,在指定的时间执行 file 文件中所给出的所有命令。也可直接从键盘输入命令: at 12:00ff< plan.txtat>mailto Roger s Have a lunchat>Ctr DJob 1 at 2000 1109 12:002000 11 09 12:00 时候自动发一标题为 "Have a lu

6、nch" ,内容为 plan.txt 文件内容的邮 件给 Roger 。#!/bin/bashRESTART="" # 里面写相应服务代码START=""STOP=""case "$1" in restart) $RESTART echo ""J Jstart) $START echo ""J JSTOP) $STOP echo ""J J*)echo "Usage: $0 restart | start | stop" ex

7、it 1esac exit 1脚本写完要修改一下权限 chmod u+x test.sh首先, linux 随机启动的服务程序都在 /etc/init.d 这个文件夹里, 里面的文件全部都是脚本 文件(脚本程序简单的说就是把要运行的程序写 到一个 文件里让系统能够按顺序执行,类 似 windows 下的 autorun.dat 文件),另外在 /etc 这个文件夹里还有诸如名为 rc1.d, rc2.d 一直到 rc6.d 的文件夹,这些都是 linux 不同的 runlevel ,我们一般进入的 Xwindows 多用 户的运行级别是第 5 级,也就是 rc5.d ,在这个文件夹下的脚本文件

8、就是运行第 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里表示可以执行的程序。这样,我就可以编写一个脚本程序,把它放到 /et

9、c/init.d 里,然后在 rc5.d 里做一个相 应的软链接就可以了。 这个脚本其实很简单,就两行:#!/bin/bash/usr/bin/scim第一行是声明用什么终端运行这个脚本,第二行就是要运行的命令。还需要注意的一点是,在rc5.d里,每个链接的名字都是以S或者K开头的,S开头的表示是系统启动是要随机启动的,K开头的是不随机启动的。这 样,你就可以知道,如果我要哪个服务随机启动,就把它名字第一个字母务就不能随机启动了。因此,我这个链接K改成S就可以了,当然,把 S改成K后,这个服 还要起名为SXXX这样系统才能让它随机启动。在MySQL的管理过程中,偶尔会遇到一些PC Server

10、宕机或者重启,这时我需要在主机启动后再将MySQL服务启动。一般情况下,这项工作都是简单的。但是,当面临上百台或者更多 的MySQL主机的时候,这种“偶尔”可能会很多,这种“偶尔”还会在半夜或者凌晨发生, 如果每次都手动操作,这是很繁琐的。更重要的是,如果因此而打断了凌晨的美梦是不值得 的。要实现随开启自动启动 mysqld ,我们需要搞定如下几个问题:1. Linux 开机自动启动脚本放在哪儿?一般的,作为服务器使用的 Linux 一般会以“完全多用户模式 (Multi-User Mode with Networking) ”级别来启动, 这种情况下 Linux 在启动时会运行 /etc/r

11、c.d/rc3.d/ 下的全部脚 本。 例如我们在这个目录下会看到脚本” /etc/rc.d/rc3.d/S90crond ”,意味着开机启动时会 运行 S90crond 脚本。2. Linux 如何运行这些脚本?既然已经知道自动启动脚本该放在哪儿了,一切就好办。我们只需要将一个启动MySQL的脚本放过去就好了。下面是我们的一个简单的启动脚本v0.1 mysqldauto$vi mysqldauto#!/bin/sh# Version: 0.1 by orczhou/opt/mysql/bin/mysqld_safe-user=mysql& # 这 里 需 要 修 改 为 你 的mys

12、qld_safe 目录$chmod +x mysqldauto$mv mysqldauto /etc/rc.d/init.d/$ln -s /etc/rc.d/init.d/mysqldauto /etc/rc.d/rc3.d/S99mysqld这样我们就把创建的 mysqldauto 脚本放到了 /etc/rc.d/rc3.d/ 下面(注意这里使用了 link 的方式), mysqld 可以自动启动了。这有两个问题需要解释:* * * * * 为什么不直接在目录 /etc/rc.d/rc3.d/ 下创建文件,而要创建一个软连接? 这并不是必须的。 但是这样做是有很多好处的 (后面会解释) ,

13、不过这样做至少会看起来更加 专业。* * * * *为什么文件名要用 S99mysqld ?这是规则,在 rc3.d下面的脚本如果以字母S开头,那么执行时 Linux 会给它传递一个 start 参数(如果以字母 K 开头,则会传递 stop 参数);S后面接个数字,表示了这个脚本的启动顺序,如果目录rc3.d下还有S98*那么它会在 S99 之前运行。(看到这儿,你可以猜测一下前面我们为什么要创建软连接了)好了,自此你的 mysqld 就已经可以随 Linux 开机自动启动了。3. 怎样做更专业些?上面这样做, 已经可以解决问题了, 不过写法多少有些 “山寨”,下面我们看看怎样改造 一下。*

14、 * * * *改造1:处理参数start。既然前面提到以字母S开头的脚本会自动传递一个参数start , K则会传递stop。那么我再做如下修改:$vi mysqldauto#!/bin/sh* Version: 0.2 by orczhouif $# -ge 1 ;thenmysqldProc='ps _ef|grep -E "mysqld.+safe"|grep -v "grep"|wc _l'if $1 = "stop" ;thenif $mysqldProc -eq 1 ;then$MYSQLHOME/bin/mysqladmin -uroot shutdownfielif $1 = "start" ;thenif $mysqldProc -eq 0 ;then$MYSQLHOME/bin/mysqld_safe -user=mysql &fififi做了如此改造后,我们脚本需要接收两个参数 start stop 了。如果你想让你 mysqld 在 关闭主机的时候自动关闭,那么 stop 参数就可以起作用了:$ln -s /etc/rc.d/init.d/mysqldauto /etc/rc.d/rc0.d/K20mysqld这里做软连接好处就体现出来了,启动和关闭只

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论