ubuntu自定义服务模板
根据他人代码修改:
#!/bin/sh
### BEGIN INIT INFO
# Provides: <pragram name>
# Required-Start: $local_fs $network $named $time $syslog
# Required-Stop: $local_fs $network $named $time $syslog
# Default-Start:
# Default-Stop:
# Description: shrpx proxy
### END INIT INFO PROG= #<pragram name>
PIDFILE= #<pid file full path>
LOGFILE= #<log file full path> start() {
if [ -f $PIDFILE ]; then
if ! pgrep $PROG; then
echo "Terminate abnormaly last time!"
rm -f $PIDFILE
else
echo 'Service already running' >&
return
fi
fi if [ -n "$PIDFILE" ];then
PIDFILE="&1"
fi echo 'Starting service...' if $PROG >$LOGFILE; then
echo 'Service started'
else
echo 'Start failed!' >&
fi
} stop() {
if [ ! -f "$PIDFILE" ]; then
echo 'Service not running' >&
return
fi
echo 'Stopping service…' >&
kill -KILL $(cat "$PIDFILE")
rm -f "$PIDFILE"
echo 'Service stopped' >&
} status(){
if [ -f "$PIDFILE" ];then
echo "$PROG is running"
else
echo "$PROG is stopped"
fi
} uninstall() {
echo "Are you really sure you want to uninstall this service?"\
"That cannot be undone. [yes|No] "
local SURE
read SURE
if [ X"$SURE" = "Xyes" ]; then
stop
if [ -f $PIDFILE ]; then
rm -f "$PIDFILE"
fi
echo "Notice: log file is not be removed: '$LOGFILE'" >&
update-rc.d -f $PROG remove
rm -fv "$0"
fi
} case "$1" in
start)
start
;;
stop)
stop
;;
uninstall)
uninstall
;;
retart)
stop
start
;;
status)
status
;;
*)
echo "Usage: $0 {start|stop|status|restart|uninstall}"
esac
使用方法:cp到/etc/init.d/下面,修改<>里面的内容,然后使用update-rc.d管理服务;
添加一个服务:sudo update-rc.d srv_name defaults
删除一个服务 :sudo update-rc.d–f srv_name remove
default表示的是服务的运行优先级,默认是20,数字越小优先级越高。
以后就会开机自启动了,使用sudo service srv_name start|stop|status|restart|uninstall来做临时性的管理。
ubuntu自定义服务模板的更多相关文章
- Ubuntu自定义服务
1.准备脚本 准备好一个bash服务脚本,包括start|stop|restart等参数,将脚本文件命名为“服务名”,拷贝到/etc/init.d/目录下. 2.添加服务sudo update-rc. ...
- Ubuntu下使用Sysvinit实现自定义服务(简单研究)
通过上一篇文章http://www.cnblogs.com/EasonJim/p/7168216.html可以大概了解到Sysvinit的历史. 其实在自定义服务上,使用Sysvinit是最简单的,本 ...
- 用Visual Studio2019自定义项目模板
项目模板简介 众所周知,在我们使用VS新建项目时,都需要选择一个项目模板,如下图: 我们选择完项目模板进行创建,创建完成之后,可以发现项目中已经包含了一些基础的文件.例如MVC: 可以看到,MVC项目 ...
- VS2019 自定义项目模板
前言: 使用"宇宙最强IDE"开发项目时,都需要根据不同情况选择一个项目模板,来满足开发需求:如下 VS为我们提供了基础的项目模板,但现有项目模板未包含基础功能如:日志输出.审计日 ...
- .NET Core - 自定义项目模板
前言: 前面介绍 自定义项目模板 中介绍了一种简单的方式--通过创建项目导出为项目模板方式实现.本次将采用dotenet cil(手脚架)来创建项目模板. 那么,我们首先看下当前dotnet 支持的项 ...
- JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(四):自定义T4模板快速生成页面
前言:上篇介绍了下ko增删改查的封装,确实节省了大量的js代码.博主是一个喜欢偷懒的人,总觉得这些基础的增删改查效果能不能通过一个什么工具直接生成页面效果,啥代码都不用写了,那该多爽.于是研究了下T4 ...
- VS自定义项目模板:[2]创建VSIX项目模板扩展
VS自定义项目模板:[2]创建VSIX项目模板扩展 听语音 | 浏览:1237 | 更新:2015-01-02 09:21 | 标签:软件开发 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师 ...
- angularjs 自定义服务的三种方式
angularjs 中可通过三种($provider,$factory,$service)方式自定义服务,以下是不同的实现形式: // 定义module , module中注入$providevar ...
- angularJs自定义服务(实现签名和加密)
写在前面: angularJS是google公司主推的js开发优秀框架... 页面展示: 在应用中进行加密是普遍存在的,个人建议在前端实现加密签名(前端加密是否必要来自知乎:http://www.zh ...
随机推荐
- SQLite 对中文路径的支持(用到了StringToWideChar和Utf8Encode在D7的System单元中自带)
最近用SQLITE作为数据库,发现,如果直接传递带中文路径或文件名的数据库,会导致无法打开数据库的情况.看了一下SQLITE的源码,才发现,原来SQLITE中是用UTF8编码进行文件打开操作的. 所以 ...
- 《ruby编程语言》笔记2 对象
ruby是一门非常纯粹的面向对象的语言:所有值都是对象,而且没有基本类型(primitive type)和对象类型的区别,这一点不同于其他语言.在Ruby中,所有对象都继承一个Object类,而且共享 ...
- redis+PHP实现的一个优先级去重队列
主要思路是用一个set做前端去重缓冲, 若干个list做后端的多优先级消息队列, 用一个进程来进行分发, 即从set中分发消息到队列. set缓冲的设计为当天有效, 所以有个零点问题,有可能在零点前s ...
- python-urllib2模块
参考: http://blog.csdn.net/wklken/article/details/7364390 http://hankjin.blog.163.com/blog/static/3373 ...
- ChannelFactory.Endpoint 上的地址属性为空。ChannelFactory 的终结点必须指定一个有效的地址。
主体代码如下 IServiceA proxyA; ChannelFactory<IServiceA> factoryA = new ChannelFactory<IServiceA& ...
- 【Node】fs
var fs = require('fs') // fs 文件系统 var stdin = process.stdin var stdout = process.stdout var stats = ...
- 【转】重载(overload),覆盖(override),隐藏(hide)的区别
原文网址:http://www.cppblog.com/zgysx/archive/2007/03/12/19662.html 写正题之前,先给出几个关键字的中英文对照,重载(overload),覆盖 ...
- Flash Vector例子
var s1:Student = new Student(); var s2:Student = new Student(); var s3:Student = new Student(); s1.n ...
- 解决windows10搜索不到内容的问题
windows 10的搜索突然搜不到程序了, 网上查询说要重建索引,方法如下: 1.按ctr+R键,输入%LocalAppData%\Packages\windows.immersivecontrol ...
- HW4.28
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...