A-A+

将可执行程序设为linux服务启动的教程

2016年01月05日 电脑网络 暂无评论 阅读 2 views 次

每一个IT菜鸟的心里都有一个成为英雄伟人的梦,由于懒惰或者害羞,我们每个人都害怕去成长,拒绝去成长。今天我正式开博了,在以后的工作中保持一周一个博客的好习惯,可以记录自己学习到的新知识,也可以给自己学的东西做一个备份,有助于以后的成长。拜拜蓝多多,本人要去做伟大的人了,求监督。

下面是今天的笔记,主要是学习如何在linux把程序设为自启动。

如何将我们自己的程序设为linux的一个服务程序,并实现开机启动,需要经过如下三步:

1、把可执行程序放在一个linux系统可以找到的地方。

在linux终端下输入env | grep PATH,在输出的目录就是系统能找到的位置,将我们的程序放到其中的一个目录下即可,我将我的程序serialread放在/usr/local/bin目录下。

2、在目录/etc/init.d/下,新建一个以服务为文件名的文件,在我的实验中,建立了serialread的文件

如果我们打开目录 /etc/init.d/,看到的文件其实都是服务程序文件,每个文件的内容都大同小异,我们会看到,这里的文件在文件结构上几乎是一样的。几乎每个文件 都有 start 、stop、restart和status这样的标志,对,我们新建的这个文件也具有相同的结构,只是在这些标志内部把相应的可执行程序换成我 们自己的可执行程序即可。如我的serialread文件的内容如下:

  1. #! /bin/sh  
  2. ### BEGIN INIT INFO   
  3. #N=/usr/local/bin/serialread  
  4. set -e  
  5. case "$1" in  
  6.   start)  
  7.       # make sure privileges don't persist across reboots  
  8.       nohup /usr/local/bin/serialread &  
  9.       ;;  
  10.   stop)  
  11.       pkill serialread  
  12.       ;;  
  13.   
  14.   
  15.   restart)  
  16.       pkill serialread  
  17.       nohup /usr/local/bin/serialread &  
  18.       ;;  
  19. esac  
  20. exit 0  

3、在目录/etc/rc3.d,新建一个指向第2步中建立的服务文件的符号连接文件。

打开目录/etc/rc3.d,可以看到这里都是符号连接文件(相当于windows中的快捷方式),采用一下命令格式

ln -sf 目标文件名 连接文件名

连接文件名采用“SXX目标文件名”的格式。其中XX一般是一个从1到100的整数,它表示启动优先级,数字越大,优先级越低,比如服务A的运行要依赖服务B,那A的XX数字就应该大于B的。后跟“目标文件名”是为了一目了然,一看就知道是哪个文件的符号连接。目录 /etc/rc3.d/ 是系统启动时自动搜索的目录,该目录下的符号连接文件的目标文件,都将被运行,这就是在这个目录建立符号连接的原因——为了开机就运行。

如本例中:

cd /etc/rc3.d/

ln -sf /etc/init.d/serialread S99serialread

完成以上3个步骤,你就把自己的一个可执行程序做成系统的一个服务了,它具有我们一开始说的几个特定。我们可以用service命令控制这个程序了:

启动:service serialread start

停止:service serialread stop

重启:service serialread restart

上面的serialread为服务名,也就是在第2步中建立的文件名。

4、设置开机启动

使用以下2中方法

1)chkconfig seria1read --level 35 on

2)编辑/etc/rc.local文件,添加启动脚本,内容如下:

  1. #!/bin/sh -e   
  2. #  
  3. # rc.local  
  4. #  
  5. # This script is executed at the end of each multiuser runlevel.  
  6. # Make sure that the script will "exit 0" on success or any other  
  7. # value on error.  
  8. #  
  9. # In order to enable or disable this script just change the execution  
  10. # bits.  
  11. #  
  12. # By default this script does nothing.   
  13. service serialread start  
  14. exit 0  

这样serialread这个服务就可以在linux操作系统开机的时候自启动了。这跟windows系统下还是有很大区别的,大家自己融会贯通。

标签:

给我留言