精华内容
下载资源
问答
  • Linux Service配置文件的编写

    千次阅读 2020-10-11 15:04:39
    通过编写Service配置文件,可以使用Linux的 systemctl 命令来达到管理服务的启动、自启动、停止 特定脚本、进程。 编写方法: 文件命名:xxxx.service [Unit] Description=Frp Server Service #服务的描述信息 ...

    通过编写Service配置文件,可以使用Linux的 systemctl 命令来达到管理服务的启动、自启动、停止 特定脚本、进程的目的。

    编写方法:
    文件命名:xxxx.service

    [Unit]
    Description=Frp Server Service		#服务的描述信息
    After=network.target				#其中network.target代表有网路,network-online.target代表一个连通着的网络。
    
    [Service]
    Type=simple
    User=nobody
    Restart=1 			# 如果这个服务停止了,那么就重启
    RestartSec=5s
    ExecStart=/usr/bin/frps -c /etc/frp/frps.ini #服务的启动命令
    
    [Install]
    WantedBy=multi-user.target
    

    编写好了以后,把这个文件拷贝到/etc/systemd/system/ 目录,然后执行如下命令:

    systemctl enable xxx 		#开启这个服务的开机自启
    systemctl start xxx		#启动服务
    systemctl stop xxx 		#停止服务
    systemctl status xxx 	#服务的运行信息 
    
    展开全文
  • [LINUX]systemd service编写

    2020-08-28 11:03:11
    Service(服务)配置服务具体的属性了(可以类比成nodes信息) Type:服务的启动类型,可以是 simple:本进程就是主体程序,例如非daemon程序,自己编写的小程序; forking:守护进程服务一般采用这种方式启动,即...
    • Unit(单元)一个单元代表了一个后台服务进程:(可以类比成relations,描述服务之间的依赖关系)
      • Description:一段描述性文字,让人知道这个服务是干嘛的,一般都会写;
      • (After,Before)/Requires:描述在什么服务之后启动,区别在于(After,Before)非强制启动,类似于一个注释,说明启动本服务之前,【最好】先启动哪些服务,没有任何制约作用,如果那些服务没有启动,本服务照样会启动。Require会自动启动依赖的服务,然后启动本服务,关闭时也会先关闭本服务;
      • Documentation:也是描述性文字,一般指向一个http的文档地址,一般不写;
      • Wants:功能和Requires相反,带有强制作用,等于反向的描述依赖,但是如果wants的服务没有启动成功,不会影响本服务,因为从关系上,仍然是wants的服务依赖于本服务;
      • Conflicts:表示互斥关系,如果Conflicts中的服务已经启动,本服务就不启动;
      • BindsTo:指定的unit如果推出,当前服务也会停止运行;
      • Condition:当前unit必须满足的条件,否则不会运行;
      • OnFailure:如果本unit启动失败,那么启动某个候选方案service,类似于backup;
    • Service(服务)配置服务具体的属性了(可以类比成nodes信息)
      • Type:服务的启动类型,可以是
        • simple:本进程就是主体程序,例如非daemon程序,自己编写的小程序;
        • forking:守护进程服务一般采用这种方式启动,即在程序中调用了linux daemon函数;
        • oneshot:一次性程序,在程序退出后服务继续运行;
        • dbus、idle,notify。
      • ExecStart:执行一条shell命令,不要有&&复杂的运行关系,如果有,写入sh脚本中;
      • ExecStartPre:预处理脚本,看需要加;
      • ExecStartPost:后处理脚本,看需求来加;
      • Restart:设置在什么场景下进行重启,always:陷入异常退出或者被系统kill之后自动重启,no, on-success, on-failure,on-watchdog, on-abort;
      • RestartSec:服务终止后等待多长时间才重启,默认是100ms,一般没有特殊需求不用设置;
      • KillMode:process、control-group、none3选1,process就是当前进程,control-group就是终止一个组,none就是不关闭程序(一般不选);
      • TimeoutSec:服务start和stop等超时等待时间;
      • Environment:设置环境变量;
      • EnvironmentFile:通过文件的方式设置环境变量;
      • ExecStop:停止的时候执行的命令;
      • ExecReload:重新加载(restart)的时候执行的命令;
      • StandardOutput:syslog标准输出路径;
      • StandardError:inherit标准错误路径;
      • PrivateTmp:True给服务分配独立的临时空间;
      • WorkingDirectory:设置工作路径;
      • User:以指定的用户名称启动服务;
      • Group:以指定的组名称启动服务;
    • Install(安装):
      • WantedBy:将服务安装到哪里,一般都是multi-user.target;
      • Also:本服务关联的unit,在enable的时候会一起enable;
      • Alias:当前unit的别名;
    • 其他设置:
      • 设置systemd调试模式:service标签下添加:Environment=SYSTEMD_LOG_LEVEL=debug
      • 重新加载最新配置:sudo systemctl daemon-reload
      • 开启启动某个服务:sudo systemctl enable foo.service
    展开全文
  • 编写属于自己的Linux Service命令

    千次阅读 2017-08-01 11:00:30
    编写属于自己的Linux Service命令最近在玩Liunx,发现linux启动服务是用SERVICE + COMMAND,觉得很有意思,因为command命令本身也是一个脚本啊,比如说:service network restart;好奇心就来了,怎么能够做一个属于...
    编写属于自己的Linux Service命令最近在玩Liunx,发现linux启动服务是用SERVICE + COMMAND,觉得很有意思,因为command命令本身也是一个脚本啊,比如说:service network restart;好奇心就来了,怎么能够做一个属于自己的service命令呢。其实很简单,只要我们认识service这个命令的原理就行了。如果要知道service这个命令怎么用,你就自己man service下,在这里,我简要说下service的运行过程。举个例子来说:service network
     restart。首先呢,sevice 会去寻找/etc/init.d下的network脚本,restart是network脚本里的一个参数(你可以去查看network这个脚本支持的参数),然后告诉系统运行network这个脚本,剩下的事情就交给network脚本去坐了,事实就是这么简单。现在,你应该知道怎么编写属于自己的service命令了吧,编写一个脚本,然后把它放在/etc/init.d这个目录底下,你就可以用service +脚本名字 运行它。如果是要开机自动启动那就得用chkconfig命令了。注意:A、service这个命令往往是即时生效,不用开关机,但是重启后服务会回到默认状态。B、chkconfig是用于把服务加到开机自动启动列表里,只要启动它,就能自动启动,重启后永久生效即:chkconfig
     --add COMMAND chkconfig COMMAND on/off 重启后永久生效
    
    展开全文
  • 运行 (1)启动: 1 2 3 root@localhost:/home/yao/projects# service hello.sh start start hello hello world (2)停止: 1 2 3 root@localhost:/home/yao/projects# service hello.sh stop stop hello stop ...

    1.写一个简单小程序

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    #include<stdio.h>

    #include<stdlib.h>

     

    int main(int argc,char **argv)

    {

      while(1)

      {

        printf("hello world\n");

        sleep(2);//2s

      }

    }

     

     2.gcc编译

    1

    gcc -o hello hello.c

     生成hello

    1

    ./hello

     测试,ok!

     

    3.在/etc/init.d/目录下生成hello.sh脚本

    hello.sh:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    #!/bin/bash

     

    SERVERNAME="hello"

     

    start()

    {

        echo "start $SERVERNAME"

        /home/yao/projects/$SERVERNAME

        echo "start $SERVERNAME ok!"

        exit 0;

    }

     

    stop()

    {

        echo "stop $SERVERNAME"

        killall $SERVERNAME

        echo "stop $SERVERNAME ok!"

    }

     

    case "$1" in

    start)

        start

        ;;

    stop)

        stop

        ;;

    restart)

        stop

        start

        ;;

    *)

        echo "usage: $0 start|stop|restart"

        exit 0;

    esac

    exit

     

    4.更改脚本文件属性

    1

    chmod +x hello.sh

     

    5.运行

    (1)启动:

    1

    2

    3

    root@localhost:/home/yao/projects# service hello.sh start

    start hello

    hello world

    (2)停止:

    1

    2

    3

    root@localhost:/home/yao/projects# service hello.sh stop

    stop hello

    stop hello ok!

    (3)重启:

    1

    2

    3

    4

    5

    6

    root@localhost:/etc/init.d# service hello.sh restart

    stop hello

    stop hello ok!

    start hello

    hello world

    hello world

     6.over!

    展开全文
  • 今天在Linux下源码安装好MySQL后,将mysql添加到系统的服务的过程引起了我的兴趣,我能不能自己写一个简单的脚本,也添加为系统的服务呢? 于是开干: ? 1 2 su vimyservice 然后模仿着mysql在里面开...
  • linux service

    2017-10-19 15:43:00
    1 linux service是什么 linux service是后台...2 编写自己的service 两个组件:service可执行程序本身和init script init script放在/etc/init.d目录下。 init script的主要逻辑如下: # Main logic case "...
  • 编写linux service并设置开机启动(Ubuntu) 1.编写自己的可执行文件,比如myservice.sh 2.编写控制执行的脚本,如mytest,一定要加上可执行权限,否则会报 unrecognized service,并将mytest放到/etc/...
  • Systemd 广泛应用于新版本的RHEL、SUSE Linux Enterprise、CentOS、Fedora和openSUSE中,用于替代旧有的服务管理器service。 开始 Systemd 服务的内容主要分为三个部分,控制单元(unit)的定义、服务(service...
  • Linux平台下的service程序编写指南

    万次阅读 2010-09-24 15:09:00
    本文主要介绍了如何编写一个service服务所涉及的主要方面。1)将一个普通程序装成daemon程序;2)编写service方式的shell脚本。并以C语言为例,基于Red hat 企业版5.3平台演示了一个service服务程序从代码编写到脚本...
  • Linux平台下的service程序编写指南 Hu Dennis Sep 24, 2010转载注明出处http://blog.csdn.net/gobitan 摘要:本文主要介绍了如何编写一个service服务所涉及的两个主要方面。1)将一个普通程序装成daemon程序;2)...
  • Linux编写Daemon

    2015-09-28 16:14:12
    Linux编写Daemon 转自:...   在Linux(以Redhat Linux Enterprise Edition 5.3为例)下,有时需要编写ServiceService也是程序,一般随系统启动
  • service编写全过程

    千次阅读 2018-07-03 14:42:58
    Linux平台下的service程序编写指南Hu Dennis Sep 24, 2010转载注明出处http://blog.csdn.net/gobitan 摘要:本文主要介绍了如何编写一个service服务所涉及的两个主要方面。1)将一个普通程序装成daemon程序;2)编写...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 508
精华内容 203
关键字:

linuxservice编写

linux 订阅