为什么80%的码农都做不了架构师?>>>   

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

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

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

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

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

#! /bin/sh

### BEGIN INIT INFO

#N=/usr/local/bin/serialread

set -e

case "$1" in

start)

# make sure privileges don't persist across reboots

nohup /usr/local/bin/serialread &

;;

stop)

pkill serialread

;;

restart)

pkill serialread

nohup /usr/local/bin/serialread &

;;

esac

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 编辑/etc/rc.local文件,添加启动脚本,内容如下:

#!/bin/sh -e

#

# rc.local

#

# This script is executed at the end of each multiuser runlevel.

# Make sure that the script will "exit 0" on success or any other

# value on error.

#

# In order to enable or disable this script just change the execution

# bits.

#

# By default this script does nothing.

service serialread start

exit 0

这样serialread这个服务就可以开机启动了,呵呵

转载于:https://my.oschina.net/seanx/blog/618262

Linux设定程序为服务运行相关推荐

  1. 服务启动失败_将控制台程序转换为服务运行

    移花接木 在上一篇文章<限制程序只能同时启动一个实例-唯一>中,我们详细讨论了在Windows中,将软件设置为开机启动的方法.从而实现保护程序开机的时候自动保护服务的运行. 有的时候,我们 ...

  2. Linux下程序编译通过运行时提示error while loading shared libraries(动态链接库问题)

    问题: Linux下程序编译通过了,但是运行时提示 :error while loading shared libraries: libXXX.so.X: cannot open shared obj ...

  3. windows10系统如何将程序做成服务运行

    1.首先下载: 下载Instsrv.exe和Srvany.exe Instsrv.exe可以给系统安装和删除服务 Srvany.exe可以让程序以服务的方式运行 本人网盘链接: https://pan ...

  4. linux程序已经在后台运行冻结了_让linux下程序永远后台运行

    今天写了一个后台运行的脚本,发现只要我关终端,脚本也就随之停止了,昨天还不是这样啊?发现,细节之处有所不同,昨天我在运行该脚本之后,在终端shell中用exit命令退出,而今天则是直接关了终端,就这么 ...

  5. Linux——让程序在后台运行(四种方法+使用推荐)

    目录 一.第一种方法(加"&"符号) 二.第二种方法(nohup命令)  三.第三种方法(screen命令)   四.第四种方法(systemctl命令)   五.总结 六 ...

  6. linux java services_在Linux上将Java应用程序作为服务运行

    小编典典 我在这里写了另一个简单的包装器: #!/bin/sh SERVICE_NAME=MyService PATH_TO_JAR=/usr/local/MyProject/MyJar.jar PI ...

  7. ssh中exit命令退出远程服务器_解决Linux关闭终端(关闭SSH等)后运行的程序或者服务自动停止...

    问题描述:当SSH远程连接到服务器上,然后运行一个服务 ./catalina.sh start,然后把终端开闭(切断SSH连接)之后,发现该服务中断,导致网页无法访问. 解决方法:使用nohup命令让 ...

  8. Linux内核深入理解系统调用(2):vsyscall 和 vDSO 以及程序是如何运行的(execve)

    Linux内核深入理解系统调用(2) vsyscall 和 vDSO 以及程序是如何运行的(execve) rtoax 2021年3月 1. vsyscalls 和 vDSO 这是讲解 Linux 内 ...

  9. linux dhcp 绑定mac地址,●DHCP协议的功能是 (58) 。在Linux中提供DHCP服务的程序是 (59) ;DHCP服务将主机的MAC地址和IP地 - 赏学吧...

    ●DHCP协议的功能是 (58) .在Linux中提供DHCP服务的程序是 (59) :DHCP服务将主机的MAC地址和IP地址绑定在一起的方法是在 (60) 文件中添加"host主机名{h ...

最新文章

  1. 中英字体不同导致的下划线不对齐问题
  2. 八、数据库服务连接存储(MPIO) 中
  3. 中文乱码各个浏览器的处理
  4. 《剑指offer》连续子数组的最大和
  5. Windows 10体验:文件资源管理器变成了首页
  6. 建立主键应该遵循的原则
  7. web网页期末作业-在线教育
  8. unity3d中让物体显示和隐藏
  9. Python爬虫:用BeautifulSoup进行NBA数据爬取
  10. 现代操作系统原理与实践03:操作系统结构
  11. 用python和OpenCV进行动态物体检测
  12. 面向数字孪生城市的智能化全息测绘(论文摘抄)
  13. switch语句表达式和执行流程
  14. 从π与e开始 理解正态分布
  15. 【Errors】Errors during downloading metadata for repository ‘AppStream‘:
  16. file-saver实现文件流下载
  17. 判断文本框输入中文超过10个英文数字超过20个
  18. 用纯css实现一个图片拼接九宫格
  19. C++继承和派生笔记
  20. 从零开始写一个简单的bootloader(1)

热门文章

  1. 南航计算机硬件实验,南航80X86微机原理及接口技术实验指导书.pdf
  2. 直系同源基因ks_哈佛医学院开发出新的Cas9变体,可以靶向基因组绝大部分序列...
  3. 华为创造出5g和鸿蒙,拥有5G专利,开发鸿蒙系统:《华为智慧》复盘成长路总结成功之道...
  4. java什么叫实例化_在JAVA中实例化的确切含义是什么
  5. python pandas筛选数据_Python pandas从字符串列的数据选择中筛选出nan
  6. 关于举办第十七届全国大学生智能汽车竞赛的通知-加盖公章
  7. 测试录制的电话拨码声音信号在发送过程中的问题
  8. 2021年春季学期-信号与系统-第四次作业参考答案-MATLAB实验题2
  9. 创办智能车竞赛平台,十五年无间断,育人数十万
  10. 2020年人工神经网络第二次作业-参考答案第六题