创建Linux系统服务的方法

linux环境:ubuntu

代码如下:

#! /bin/sh
# Provides:       server.sh
# Default-Start:  2 3 4 5
# Short-Description: server testing...

EXEC_PATH=/home/huangmin/cdev/project
EXEC=server
PID_FILE=/var/run/server.sh.pid
DAEMON=/home/huangmin/cdev/project/server

if ! [ -x $EXEC_PATH/$EXEC ]; then
  echo "ERROR:$EXEC_PATH/$EXEC not found ..."
  exit 1
fi

stop() {
  echo "Stopping $EXEC ..."
  killall $DAEMON >/dev/null
  rm -f $PID_FILE
  sleep 1
  echo "Shutting down $EXEC: [OK]"
}

start() {
  echo "Starting $EXEC ..."
  $DAEMON >/dev/null
  pidof $EXEC > $PID_FILE
  sleep 1
  echo "Starting $EXEC: [OK]"
}

restart() {
  stop
  start
}

case "$1" in
  start)
    start

stop)
    stop

restart)
    restart

status)
    echo "Status Here"

*)
    echo "Usage: service $EXEC {start|stop|restart|status}"
    exit 1
esac

exit $?

/home/huangmin/cdev/project/server是我们需要的作为系统服务的程序。
写好脚本之后,将其放置到目录/etc/init.d中,或者做成软链接形式如:sudo ln -s /home/huangmin/cdev/project/bash/server.sh /etc/init.d/servertest.sh
最后利用chkconfig命令将其添加进系统服务: chkconfig –add servertest.sh
可以使用命令service servertest.sh start马上启动该服务程序

(0)

相关推荐

  • 创建Linux系统服务的方法

    linux环境:ubuntu 复制代码 代码如下: #! /bin/sh# Provides:       server.sh# Default-Start:  2 3 4 5# Short-Description: server testing... EXEC_PATH=/home/huangmin/cdev/projectEXEC=serverPID_FILE=/var/run/server.sh.pidDAEMON=/home/huangmin/cdev/project/server if

  • .net Core 3.0 WebApi 创建Linux守护进程的方法

    前言 我们一般可以在Linux服务器上执行 dotnet <app_assembly.dll> 命令来运行我们的.net Core WebApi应用.但是这样运行起来的应用很不稳定,关闭终端窗口之后,应用也会停止运行.为了让其可以稳定运行,我们需要让它变成系统的守护进程,成为一种服务一直在系统中运行,出现异常时也能重新启动. Linux系统有自己的守护进程管理工具 Systemd .systemd 是内核启动后的第一个用户进程,PID 为1,是所有其它用户进程的父进程.它直接与内核交互,性能出

  • 使用 chkconfig 和 systemctl 命令启用或禁用 Linux 服务的方法

    对于 Linux 管理员来说这是一个重要(美妙)的话题,所以每个人都必须知道,并练习怎样才能更高效的使用它们. 在 Linux 中,无论何时当你安装任何带有服务和守护进程的包,系统默认会把这些服务的初始化及 systemd 脚本添加进去,不过此时它们并没有被启用. 我们需要手动的开启或者关闭那些服务.Linux 中有三个著名的且一直在被使用的初始化系统. 什么是初始化系统? 在以 Linux/Unix 为基础的操作系统上,init (初始化的简称) 是内核引导系统启动过程中第一个启动的进程. i

  • Python实现Linux监控的方法

    工作原理:基于/proc 文件系统 Linux 系统为管理员提供了非常好的方法,使其可以在系统运行时更改内核,而不需要重新引导内核系统,这是通过/proc 虚拟文件系统实现的./proc 文件虚拟系统是一种内核和内核模块用来向进程(process)发送信息的机制(所以叫做"/proc"),这个伪文件系统允许与内核内部数据结构交互,获取有关进程的有用信息,在运行中(on the fly)改变设置(通过改变内核参数).与其他文件系统不同,/proc 存在于内存而不是硬盘中.proc 文件系

  • python 实现创建文件夹和创建日志文件的方法

    一.实现创建文件夹和日志 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author: nulige import os import datetime #获取系统时间 log_path_suffix = datetime.datetime.now().strftime('%Y-%m-%d ') #创建文件夹 folder_name = '\log' root_directory = 'D:\python\disk_monitor' try: os

  • 在后台运行Linux命令的方法

    通常情况下,当你在终端运行一个命令,在你开始输入另外一个命令之前,你必须等待当前命令运行结束.这被称为在前台运行命令,或者前台进程.当一个进程在前台运行时,它占用了你的 shell,并且你可以通过输入设备和它进行交互. 那么当一个命令运行需要很长时间,而你又想同时运行另外的命令,应该怎么办?有几种选项可以选择.最明显并且最直接的选项就是启动一个新的 Shell 会话,并且在上面运行命令.另外一个选项,就是在后台运行命令. 一个后台进程就是说一个进程/命令在终端启动后,运行在后台,并且不会和用户发

  • navicat创建MySql定时任务的方法详解

    navicat创建MySql 定时任务详解 事件(event)是MySQL在相应的时刻调用的过程式数据库对象.一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的"事件调度器".事件和触发器类似,都是在某些事情发生的时候启动.当数据库上启动一条语句的时候,触发器就启动了,而事件是根据调度事件来启动的.由于他们彼此相似,所以事件也称为临时性触发器.事件取代了原先只能由操作系统的计划任务来执行的工作,而且MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系

  • Qt Design Studio创建工程的实现方法

    目录 Creating Projects 使用项目向导 向项目中添加文件 Creating Projects Qt Design Studio的主要优势之一是,它允许设计人员和开发人员使用通用的设计.开发.分析和调试工具在不同的开发平台上共享一个项目. 创建项目使您能够: 文件组 包括UI文件(.ui.qml).组件文件(.qml)和资产文件 设置用户界面预览 在Qt Design Studio中设置一个新项目可以通过向导逐步指导您完成项目创建过程.向导模板提示您输入特定类型项目所需的设置,并为

  • Golang实现文件夹的创建与删除的方法详解

    目录 创建文件夹 删除文件和文件夹 小结 学习笔记,写到哪是哪. 接着上一篇对纯文本文件读写操作,主要去实现一些文件夹操作. 创建文件夹 创建文件夹的时候往往要先判断文件夹是否存在. 样例代码如下 package main import ( "bufio" "fmt" "io" "os" ) //判断文件夹是否存在 func HasDir(path string) (bool, error) { _, _err := os.S

  • 深入理解React中es6创建组件this的方法

    首发于:https://mingjiezhang.github.io/. 在JavaScript中,this对象是运行时基于函数的执行环境(也就是上下文)绑定的. 从react中的demo说起 Facebook最近一次更新react时,将es6中的class加入了组件的创建方式当中.Facebook也推荐组件创建使用通过定义一个继承自 React.Component 的class来定义一个组件类.官方的demo: class LikeButton extends React.Component

随机推荐