如何将自已写的程序添加到 Linux 服务中, 用 service 命令来启动或停止呢?

dbtomcat 2007-09-28 11:02:25

如何将自已写的程序添加到 Linux 服务中, 用 service 命令来启动或停止呢?
...全文
3784 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
idm2008 2009-09-17
  • 打赏
  • 举报
回复

非常感谢zmyspring。
ggff112 2007-10-06
  • 打赏
  • 举报
回复
虽然看不懂,但很佩服
zmyspring 2007-09-28
  • 打赏
  • 举报
回复
这个蛮简单的, 我来解答:)
1 先写一个脚本, 这个脚本用来启动你的程序, 或者停止你的程序, 可参考如下
--------------------
#! /bin/sh

# smartmontools init file for smartd
# Copyright (C) 2002-4 Bruce Allen <smartmontools-support@lists.sourceforge.net>
# $Id: smartd.initd,v 1.2 2004/09/17 11:55:28 arjanv Exp $

# For RedHat and cousins:
# chkconfig: 2345 40 40
# description: Self Monitoring and Reporting Technology (SMART) Daemon
# processname: smartd

# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2, or (at your option) any later
# version.
# You should have received a copy of the GNU General Public License (for
# example COPYING); if not, write to the Free Software Foundation, Inc., 675
# Mass Ave, Cambridge, MA 02139, USA.
# This code was originally developed as a Senior Thesis by Michael Cornwell
# at the Concurrent Systems Laboratory (now part of the Storage Systems
# Research Center), Jack Baskin School of Engineering, University of
# California, Santa Cruz. http://ssrc.soe.ucsc.edu/.

# Uncomment the line below to pass options to smartd on startup.
# Note that distribution specific configuration files like
# /etc/{default,sysconfig}/smartmontools might override these
#smartd_opts="--interval=1800"

SMARTD_BIN=/usr/sbin/smartd

# Source function library
. /etc/rc.d/init.d/functions

[ -r /etc/sysconfig/smartmontools ] && . /etc/sysconfig/smartmontools

[ ! -f /etc/smartd.conf ] && smartd-conf.py > /etc/smartd.conf

RETVAL=0

prog=smartd

case "$1" in
start)
echo -n $"Starting $prog: "
daemon $SMARTD_BIN $smartd_opts
touch /var/lock/subsys/smartd
echo
exit 0
;;
stop)
echo -n $"Shutting down $prog: "
killproc $SMARTD_BIN
rm -f /var/lock/subsys/smartd
echo
;;
reload)
echo -n $"Reloading $prog daemon configuration: "
killproc $SMARTD_BIN -HUP
RETVAL=$?
echo
;;
report)
echo -n $"Checking SMART devices now: "
killproc $SMARTD_BIN -USR1
RETVAL=$?
echo
;;
restart)
$0 stop
$0 start
;;
status)
status $prog
;;
*)
echo $"Usage: $0 {start|stop|reload|report|restart|status}"
RETVAL=1
esac

exit $RETVAL

--------------------
这个服务是smartd, 你也可以参考/etc/init.d目录下的脚本, 基本都差不多


2 将写好的脚本放入/etc/init.d目录

3 用命令service xxx start/stop/restart就可以执行了

4 如果你想在开机的时候,就启动你的服务, 那么你需要对你的配置文件进行配置
见上面的例:

# chkconfig: 2345 40 40

不要以为这一行市注释, 其实不尽然
如果执行#chkconfig service_name on/off
就会在/etc/rc.dx相应的目录中 添加/删 除启动关闭项, 用于在系统启动和关闭时的自动启动和关闭
这里将在/etc/rc.d2,3,4,5目录下 添加/删除, 后面的40 40分别是启动顺序和关闭顺序
也就意味着系统在处于2,3,4,5模式下时, 会启动你的程序

不说得是否清楚
hefuhua 2007-09-28
  • 打赏
  • 举报
回复
service也是脚本吧,打开看看手段加好了:)
或者去了解下/etc/rc.d/下相关的脚本怎么加的
dai_weitao 2007-09-28
  • 打赏
  • 举报
回复
等高人, 我不知道.
 Python自动化运维开发现阶段,掌握一门开发语言已经成为高级运维工程师的必备计能。因为自动化运维才是将来的趋势! 现在,大一点的公司,服务器都上几百,上千,甚至数万台,这种情况下怎样做自动化运维?用 SHELL 脚本 FOR 循环?呵呵,歇了吧,SHELL 也就适合简单的系统管理工作。到复杂的自动化任务还得要用专门的开发语言。你可能说了,自动化管理有专门的开源软件/监控也有,直接拿来用下就好了,但是现有的开源软件如 puppetsaltstackzabbixnagio 多为通用的软件,不可能完全适用你公司的所有需求,当你需要做定制、做二次开发的时候,你咋办?找开发部门?开发部门不懂运维的实际业务逻辑,出来的东西烂烂不能用,这活最后还得交给运维开发人员来做。 其次,不会运维开发,你就不能自己运维平台\复杂的运维工具,一切要借助于找一些开源软件拼拼凑凑,如果是这样,那就请不要抱怨你的工资低,你的工作不受重视了。 那为什么是Python?  Python 是个非常牛 B 的脚本语言, 能满足绝大部分自动化运维的需求,又能做后端 C/S 架构,又能用 WEB 框架快速开发出高大上的 WEB 界面,只有当你自已有能力做出一套运维自动化系统的时候,你的价值才体现出来,你才有资格跟老板谈重视, 否则,还是老老实实回去装机器吧。 为此我们推出这门Python自动化运维的系统课程,帮助你快速的掌握这门加薪的技能。这门课程目前已经帮助接近百位的linux工程师转型成功。我们的课程主要是以企业真实的项目实战为主,避免过多的理论,互动多,案例多,注重思想和项目架构的设计,小白很容易听的懂,学完能直接在公司用,非常的接地气! 只要你跟着我们学三个月,你就可以使用学到的技能,开发各种你想要的系统,满足公司的日常开发。讲师介绍凯哥,前新浪、360技术架构师,现任阿里天猫车站架构师。熟悉PHP、Python、Go等各种语言。曾主导新浪CMDB架构的设计以及二次重构,其间积累了大量的实战经验,并多次受邀对小微企业进行内训。  课程目标这门课程属于入门和进阶,适合多年linux运维经验或者有shell或者Python基础的同学学习。 1.希望转型运维开发的运维工程师2.希望了解运维开发,探寻运维架构的运维负责人3.希望获得全局思考意识的运维架构负责人 只要你跟着我们认真学,结合课程的练习和项目进行实践,相信你一定能学以致用,3个月的时间打破瓶颈,成就自己!课程大纲介绍阶段章节核心内容7.实战项目之CMDB介绍和客户端数据的采集介绍自动化运维的介绍运维实际工作简单介绍什么是运维自动化CMDB在自动化运维的重要性CMDB采集数据的三种方式CMDB实现的三种方案之Agent方式收集资产CMDB实现的三种方案之SSH类方式收集资产CMDB实现的三种方案之Saltstack方式收集资产CMDB实现各种方案的总结8.实战项目之CMDB客户端数据采集实战高内聚低耦合的思想实战CMDB收集资产之参考Django框架对配置文件的解耦CMDB收集资产之对资产采集进行可插拔式的配置CMDB收集资产之客户端功能的解耦数据提交API的验证CMDB收集资产之向API提交收集的资产CMDB收集资产之API的JWT验证问题CMDB收集资产之唯一ID选择问题CMDB收集资产之多线程并发采集9.实战项目之CMDB服务端数据的展示数据表的设计以及数据的入库CMDB后台目录结构的设计CMDB数据库表的设计将客户端提交过来的数据分析并入库用户和权限管理单个用户的增删改查操作用户组的的增删改查操作对用户和用户组进行权限管理硬盘和CPU的管理对资产硬盘的增删改查操作, 以及导出数据到PDF,Excel,CSV对资产CPU的增删改查操作, 以及导出数据到PDF,Excel,CSV            资产信息的可视化展示Highcharts的基本使用蚂蚁金服开源框架AntV的使用xadmin的基本使用和二次开发Echarts的基本使用

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧