linux下程序的启动

理论知识:

首先,linux随机启动的服务程序都在/etc/init.d这个文件夹里,里面的文件全部都是脚本文件(脚本程序简单的说就是把要运行的程序写 到一个 文件里让系统能够按顺序执行,类似windows下的autorun.dat文件),另外在/etc这个文件夹里还有诸如名为rc1.d, rc2.d一直到rc6.d的文件夹,这些都是linux不同的runlevel,我们一般进入的X windows多用户的运行级别是第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后,这个服务就不能随机启动了。因此,我这个链接 还要起名为SXXX,这样系统才能让它随机启动。
 
方式一:ntsysv
类似于windows里的msconfig工具,用来设置服务是否随机启动。你可以使用ntsysv来启动或关闭由xinetd管理的服务,还可以使用ntsysv来配置运行级别。由xinetd管理的服务会立即受到ntsysv的影响,而其它服务则不会立即生效。你必须使用service xxxxx stop/start/restart命令来停止/运行/重启某项服务。(把xxxxxx换成你想停止的服务名称即可),譬如
#ntsysv
#service network retart
“service的使用:service 服务名字 (start/restart/stop/status)”
本人遇到过的问题:
有次想用命令#serverce iptables start启动防火墙,但就是无法启动,最后用了ntsysv命令,选上iptables后,运行service iptables start就可以正常启动了。
方式二:chkconfig
chkconfig用来管理系统初始化的时候启动的服务。Chkconfig命令可以用来激活或者停用服务,也可以用来设置让某个服务随机启动。但chkconfig指令并不是立即自动禁止或激活一个服务。它只是简单的改变了符号连接。
使用说明如下:
功能说明:检查,设置系统的各种服务。
语  法:chkconfig
[--add][--del][--list][系统服务]或chkconfig[--level<等级代号>][系统服务][on/off/reset]
参  数:
–add 增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
–del 删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。
–level<等级代号> 指定读系统服务要在哪一个执行等级中开启或关毕
1:chkconfig命令也可以用来激活和解除服务。chkconfig –list命令显示系统服务列表,以及这些服务在运行级别0到6中已被启动(on)还是停止(off)。
chkconfig –add smb #增加smb服务
chkconfig –list | grep smb
chkconfig –list smb
smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
2:chkconfig还能用来设置某一服务在某一指定的运行级别内被启动还是被停运。譬如,要在运行级别3、5中停运samba服务,使用下面的命令:
chkconfig –level 35 smb off
3:由xinetd管理的服务会立即被chkconfig影响。譬如,如果xinetd在运行,finger被禁用,那么执行了chkconfig finger on命令后,finger就不必手工地重新启动xinetd来立即被启用。对其它服务的改变在使用chkconfig之后不会立即生效。必须使用service servicename start/stop/restart命令来重起服务
方式三:通过服务配置设置SAMBA的自启动,即在图形界面下,此方法略。
小结:用ntsysv和chkconfig都能令由xinetd管理的服务立即生效,而其它服务则需运行
#service xxxx restart来生效。



----------------------------------------------------分割线-----------------------------------------------------------------------------------------------------

 

 

启动模板:

1.编写启动脚本 start.sh,内容如下:

#! /bin/bash


HOME_PATH="/EEE_CHINA_C/bin"


export LD_LIBRARY_PATH=$LD_LIBRARY_LD:"/EEE_CHINA_C/lib/oracle"


cd $HOME_PATH


nohup ./EEE_POWER_REAL > /dev/null &




echo "Success"

2.在 /etc/init.d 下编写脚本 WindPower,如下:

#! /bin/bash
#chkconfig: 345 99 10
#description: Startup Script for PowerSystem


case "$1" in
start)
/EEE_CHINA_C/bin/startup.sh
echo "OK"
;;
stop)
/EEE_CHINA_C/bin/shutdown.sh
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: `basename $0` start|stop|restart|reload"
exit 1
;;
esac
exit 0 

3.执行 chkconfig -add WindPower

4.测试服务是否能启动,重启查看是否有相应的进程存在,查看进程方法:ps -ef|grep modbus(进程名)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值