github.com/rpdict/ponzu@v0.10.1-0.20190226054626-477f29d6bf5e/docs/build/System-Deployment/SysV-Style/index.html (about)

     1  
     2  <!DOCTYPE html>
     3  <html lang="en" class="no-js">
     4    <head>
     5      
     6        <meta charset="utf-8">
     7        <meta name="viewport" content="width=device-width,initial-scale=1">
     8        
     9        
    10        
    11        
    12          <link rel="shortcut icon" href="../../assets/images/favicon.png">
    13        
    14        <meta name="generator" content="mkdocs-0.16.3, mkdocs-material-1.6.1">
    15      
    16      
    17        
    18          <title>Deploying Ponzu on Linux with System-V style init</title>
    19        
    20      
    21      
    22        <script src="../../assets/javascripts/modernizr-56ade86843.js"></script>
    23      
    24      
    25        <link rel="stylesheet" href="../../assets/stylesheets/application-4d0d3f2fbf.css">
    26        
    27          <link rel="stylesheet" href="../../assets/stylesheets/application-f78e5cb881.palette.css">
    28        
    29      
    30      
    31        
    32          
    33          
    34          
    35          <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700|Roboto+Mono">
    36          <style>body,input{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}</style>
    37        
    38        <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
    39      
    40      
    41      
    42    </head>
    43    
    44    
    45    
    46    
    47      <body data-md-color-primary="grey" data-md-color-accent="light-blue">
    48    
    49      <svg class="md-svg">
    50        <defs>
    51          
    52          
    53            <svg xmlns="http://www.w3.org/2000/svg" width="416" height="448" viewBox="0 0 416 448" id="github"><path fill="currentColor" d="M160 304q0 10-3.125 20.5t-10.75 19T128 352t-18.125-8.5-10.75-19T96 304t3.125-20.5 10.75-19T128 256t18.125 8.5 10.75 19T160 304zm160 0q0 10-3.125 20.5t-10.75 19T288 352t-18.125-8.5-10.75-19T256 304t3.125-20.5 10.75-19T288 256t18.125 8.5 10.75 19T320 304zm40 0q0-30-17.25-51T296 232q-10.25 0-48.75 5.25Q229.5 240 208 240t-39.25-2.75Q130.75 232 120 232q-29.5 0-46.75 21T56 304q0 22 8 38.375t20.25 25.75 30.5 15 35 7.375 37.25 1.75h42q20.5 0 37.25-1.75t35-7.375 30.5-15 20.25-25.75T360 304zm56-44q0 51.75-15.25 82.75-9.5 19.25-26.375 33.25t-35.25 21.5-42.5 11.875-42.875 5.5T212 416q-19.5 0-35.5-.75t-36.875-3.125-38.125-7.5-34.25-12.875T37 371.5t-21.5-28.75Q0 312 0 260q0-59.25 34-99-6.75-20.5-6.75-42.5 0-29 12.75-54.5 27 0 47.5 9.875t47.25 30.875Q171.5 96 212 96q37 0 70 8 26.25-20.5 46.75-30.25T376 64q12.75 25.5 12.75 54.5 0 21.75-6.75 42 34 40 34 99.5z"/></svg>
    54          
    55        </defs>
    56      </svg>
    57      <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="drawer">
    58      <input class="md-toggle" data-md-toggle="search" type="checkbox" id="search">
    59      <label class="md-overlay" data-md-component="overlay" for="drawer"></label>
    60      
    61        <header class="md-header" data-md-component="header">
    62    <nav class="md-header-nav md-grid">
    63      <div class="md-flex">
    64        <div class="md-flex__cell md-flex__cell--shrink">
    65          
    66            <a href="../.." title="Ponzu" class="md-logo md-header-nav__button">
    67              <img src="../../images/logo.png" width="24" height="24">
    68            </a>
    69          
    70        </div>
    71        <div class="md-flex__cell md-flex__cell--shrink">
    72          <label class="md-icon md-icon--menu md-header-nav__button" for="drawer"></label>
    73        </div>
    74        <div class="md-flex__cell md-flex__cell--stretch">
    75          <span class="md-flex__ellipsis md-header-nav__title">
    76            
    77              
    78                
    79                  <span class="md-header-nav__parent">
    80                    System Deployment
    81                  </span>
    82                
    83              
    84              SysV Style
    85            
    86          </span>
    87        </div>
    88        <div class="md-flex__cell md-flex__cell--shrink">
    89          
    90            <label class="md-icon md-icon--search md-header-nav__button" for="search"></label>
    91            
    92  <div class="md-search" data-md-component="search">
    93    <label class="md-search__overlay" for="search"></label>
    94    <div class="md-search__inner">
    95      <form class="md-search__form" name="search">
    96        <input type="text" class="md-search__input" name="query" required placeholder="Search" accesskey="s" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query">
    97        <label class="md-icon md-search__icon" for="search"></label>
    98        <button type="reset" class="md-icon md-search__icon" data-md-component="reset">close</button>
    99      </form>
   100      <div class="md-search__output">
   101        <div class="md-search__scrollwrap" data-md-scrollfix>
   102          <div class="md-search-result" data-md-component="result">
   103            <div class="md-search-result__meta" data-md-lang-result-none="No matching documents" data-md-lang-result-one="1 matching document" data-md-lang-result-other="# matching documents">
   104              Type to start searching
   105            </div>
   106            <ol class="md-search-result__list"></ol>
   107          </div>
   108        </div>
   109      </div>
   110    </div>
   111  </div>
   112          
   113        </div>
   114        <div class="md-flex__cell md-flex__cell--shrink">
   115          <div class="md-header-nav__source">
   116            
   117              
   118  
   119  
   120    
   121  
   122  
   123    <a href="https://github.com/rpdict/ponzu" title="Go to repository" class="md-source" data-md-source="github">
   124      
   125        <div class="md-source__icon">
   126          <svg viewBox="0 0 24 24" width="24" height="24">
   127            <use xlink:href="#github" width="24" height="24"></use>
   128          </svg>
   129        </div>
   130      
   131      <div class="md-source__repository">
   132        ponzu-cms/ponzu
   133      </div>
   134    </a>
   135  
   136            
   137          </div>
   138        </div>
   139      </div>
   140    </nav>
   141  </header>
   142      
   143      <div class="md-container">
   144        
   145        
   146        <main class="md-main">
   147          <div class="md-main__inner md-grid" data-md-component="container">
   148            
   149              
   150                <div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
   151                  <div class="md-sidebar__scrollwrap">
   152                    <div class="md-sidebar__inner">
   153                      <nav class="md-nav md-nav--primary" data-md-level="0">
   154    <label class="md-nav__title md-nav__title--site" for="drawer">
   155      
   156        <i class="md-logo md-nav__button">
   157          <img src="../../images/logo.png">
   158        </i>
   159      
   160      Ponzu
   161    </label>
   162    
   163      <div class="md-nav__source">
   164        
   165  
   166  
   167    
   168  
   169  
   170    <a href="https://github.com/rpdict/ponzu" title="Go to repository" class="md-source" data-md-source="github">
   171      
   172        <div class="md-source__icon">
   173          <svg viewBox="0 0 24 24" width="24" height="24">
   174            <use xlink:href="#github" width="24" height="24"></use>
   175          </svg>
   176        </div>
   177      
   178      <div class="md-source__repository">
   179        ponzu-cms/ponzu
   180      </div>
   181    </a>
   182  
   183      </div>
   184    
   185    <ul class="md-nav__list" data-md-scrollfix>
   186      
   187        
   188        
   189        
   190  
   191  
   192    <li class="md-nav__item">
   193      <a href="../.." title="Home" class="md-nav__link">
   194        Home
   195      </a>
   196    </li>
   197  
   198      
   199        
   200        
   201        
   202  
   203  
   204    <li class="md-nav__item md-nav__item--nested">
   205      
   206        <input class="md-toggle md-nav__toggle" data-md-toggle="nav-2" type="checkbox" id="nav-2">
   207      
   208      <label class="md-nav__link" for="nav-2">
   209        CLI
   210      </label>
   211      <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
   212        <label class="md-nav__title" for="nav-2">
   213          CLI
   214        </label>
   215        <ul class="md-nav__list" data-md-scrollfix>
   216          
   217          
   218            
   219            
   220            
   221  
   222  
   223    <li class="md-nav__item">
   224      <a href="../../CLI/General-Usage/" title="General Usage" class="md-nav__link">
   225        General Usage
   226      </a>
   227    </li>
   228  
   229          
   230            
   231            
   232            
   233  
   234  
   235    <li class="md-nav__item">
   236      <a href="../../CLI/Generating-References/" title="Generating References" class="md-nav__link">
   237        Generating References
   238      </a>
   239    </li>
   240  
   241          
   242        </ul>
   243      </nav>
   244    </li>
   245  
   246      
   247        
   248        
   249        
   250  
   251  
   252    <li class="md-nav__item md-nav__item--nested">
   253      
   254        <input class="md-toggle md-nav__toggle" data-md-toggle="nav-3" type="checkbox" id="nav-3">
   255      
   256      <label class="md-nav__link" for="nav-3">
   257        Content
   258      </label>
   259      <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
   260        <label class="md-nav__title" for="nav-3">
   261          Content
   262        </label>
   263        <ul class="md-nav__list" data-md-scrollfix>
   264          
   265          
   266            
   267            
   268            
   269  
   270  
   271    <li class="md-nav__item">
   272      <a href="../../Content/An-Overview/" title="An Overview" class="md-nav__link">
   273        An Overview
   274      </a>
   275    </li>
   276  
   277          
   278            
   279            
   280            
   281  
   282  
   283    <li class="md-nav__item">
   284      <a href="../../Content/Extending-Content/" title="Extending Content" class="md-nav__link">
   285        Extending Content
   286      </a>
   287    </li>
   288  
   289          
   290        </ul>
   291      </nav>
   292    </li>
   293  
   294      
   295        
   296        
   297        
   298  
   299  
   300    <li class="md-nav__item md-nav__item--nested">
   301      
   302        <input class="md-toggle md-nav__toggle" data-md-toggle="nav-4" type="checkbox" id="nav-4">
   303      
   304      <label class="md-nav__link" for="nav-4">
   305        Form Fields
   306      </label>
   307      <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
   308        <label class="md-nav__title" for="nav-4">
   309          Form Fields
   310        </label>
   311        <ul class="md-nav__list" data-md-scrollfix>
   312          
   313          
   314            
   315            
   316            
   317  
   318  
   319    <li class="md-nav__item">
   320      <a href="../../Form-Fields/HTML-Inputs/" title="HTML Inputs" class="md-nav__link">
   321        HTML Inputs
   322      </a>
   323    </li>
   324  
   325          
   326        </ul>
   327      </nav>
   328    </li>
   329  
   330      
   331        
   332        
   333        
   334  
   335  
   336    <li class="md-nav__item md-nav__item--nested">
   337      
   338        <input class="md-toggle md-nav__toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5">
   339      
   340      <label class="md-nav__link" for="nav-5">
   341        HTTP APIs
   342      </label>
   343      <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
   344        <label class="md-nav__title" for="nav-5">
   345          HTTP APIs
   346        </label>
   347        <ul class="md-nav__list" data-md-scrollfix>
   348          
   349          
   350            
   351            
   352            
   353  
   354  
   355    <li class="md-nav__item">
   356      <a href="../../HTTP-APIs/Content/" title="Content" class="md-nav__link">
   357        Content
   358      </a>
   359    </li>
   360  
   361          
   362            
   363            
   364            
   365  
   366  
   367    <li class="md-nav__item">
   368      <a href="../../HTTP-APIs/File-Metadata/" title="File Metadata" class="md-nav__link">
   369        File Metadata
   370      </a>
   371    </li>
   372  
   373          
   374            
   375            
   376            
   377  
   378  
   379    <li class="md-nav__item">
   380      <a href="../../HTTP-APIs/Search/" title="Search" class="md-nav__link">
   381        Search
   382      </a>
   383    </li>
   384  
   385          
   386        </ul>
   387      </nav>
   388    </li>
   389  
   390      
   391        
   392        
   393        
   394  
   395  
   396    <li class="md-nav__item md-nav__item--nested">
   397      
   398        <input class="md-toggle md-nav__toggle" data-md-toggle="nav-6" type="checkbox" id="nav-6">
   399      
   400      <label class="md-nav__link" for="nav-6">
   401        Interfaces
   402      </label>
   403      <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
   404        <label class="md-nav__title" for="nav-6">
   405          Interfaces
   406        </label>
   407        <ul class="md-nav__list" data-md-scrollfix>
   408          
   409          
   410            
   411            
   412            
   413  
   414  
   415    <li class="md-nav__item">
   416      <a href="../../Interfaces/API/" title="API" class="md-nav__link">
   417        API
   418      </a>
   419    </li>
   420  
   421          
   422            
   423            
   424            
   425  
   426  
   427    <li class="md-nav__item">
   428      <a href="../../Interfaces/Editor/" title="Editor" class="md-nav__link">
   429        Editor
   430      </a>
   431    </li>
   432  
   433          
   434            
   435            
   436            
   437  
   438  
   439    <li class="md-nav__item">
   440      <a href="../../Interfaces/Format/" title="Format" class="md-nav__link">
   441        Format
   442      </a>
   443    </li>
   444  
   445          
   446            
   447            
   448            
   449  
   450  
   451    <li class="md-nav__item">
   452      <a href="../../Interfaces/Item/" title="Item" class="md-nav__link">
   453        Item
   454      </a>
   455    </li>
   456  
   457          
   458            
   459            
   460            
   461  
   462  
   463    <li class="md-nav__item">
   464      <a href="../../Interfaces/Search/" title="Search" class="md-nav__link">
   465        Search
   466      </a>
   467    </li>
   468  
   469          
   470        </ul>
   471      </nav>
   472    </li>
   473  
   474      
   475        
   476        
   477        
   478  
   479  
   480    <li class="md-nav__item md-nav__item--nested">
   481      
   482        <input class="md-toggle md-nav__toggle" data-md-toggle="nav-7" type="checkbox" id="nav-7">
   483      
   484      <label class="md-nav__link" for="nav-7">
   485        Ponzu Addons
   486      </label>
   487      <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
   488        <label class="md-nav__title" for="nav-7">
   489          Ponzu Addons
   490        </label>
   491        <ul class="md-nav__list" data-md-scrollfix>
   492          
   493          
   494            
   495            
   496            
   497  
   498  
   499    <li class="md-nav__item">
   500      <a href="../../Ponzu-Addons/Creating-Addons/" title="Creating Addons" class="md-nav__link">
   501        Creating Addons
   502      </a>
   503    </li>
   504  
   505          
   506            
   507            
   508            
   509  
   510  
   511    <li class="md-nav__item">
   512      <a href="../../Ponzu-Addons/Using-Addons/" title="Using Addons" class="md-nav__link">
   513        Using Addons
   514      </a>
   515    </li>
   516  
   517          
   518        </ul>
   519      </nav>
   520    </li>
   521  
   522      
   523        
   524        
   525        
   526  
   527  
   528    <li class="md-nav__item md-nav__item--nested">
   529      
   530        <input class="md-toggle md-nav__toggle" data-md-toggle="nav-8" type="checkbox" id="nav-8">
   531      
   532      <label class="md-nav__link" for="nav-8">
   533        Quickstart
   534      </label>
   535      <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
   536        <label class="md-nav__title" for="nav-8">
   537          Quickstart
   538        </label>
   539        <ul class="md-nav__list" data-md-scrollfix>
   540          
   541          
   542            
   543            
   544            
   545  
   546  
   547    <li class="md-nav__item">
   548      <a href="../../Quickstart/Overview/" title="Overview" class="md-nav__link">
   549        Overview
   550      </a>
   551    </li>
   552  
   553          
   554        </ul>
   555      </nav>
   556    </li>
   557  
   558      
   559        
   560        
   561        
   562  
   563  
   564    <li class="md-nav__item md-nav__item--nested">
   565      
   566        <input class="md-toggle md-nav__toggle" data-md-toggle="nav-9" type="checkbox" id="nav-9">
   567      
   568      <label class="md-nav__link" for="nav-9">
   569        References
   570      </label>
   571      <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
   572        <label class="md-nav__title" for="nav-9">
   573          References
   574        </label>
   575        <ul class="md-nav__list" data-md-scrollfix>
   576          
   577          
   578            
   579            
   580            
   581  
   582  
   583    <li class="md-nav__item">
   584      <a href="../../References/Overview/" title="Overview" class="md-nav__link">
   585        Overview
   586      </a>
   587    </li>
   588  
   589          
   590        </ul>
   591      </nav>
   592    </li>
   593  
   594      
   595        
   596        
   597        
   598  
   599  
   600    <li class="md-nav__item md-nav__item--nested">
   601      
   602        <input class="md-toggle md-nav__toggle" data-md-toggle="nav-10" type="checkbox" id="nav-10">
   603      
   604      <label class="md-nav__link" for="nav-10">
   605        Running Backups
   606      </label>
   607      <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
   608        <label class="md-nav__title" for="nav-10">
   609          Running Backups
   610        </label>
   611        <ul class="md-nav__list" data-md-scrollfix>
   612          
   613          
   614            
   615            
   616            
   617  
   618  
   619    <li class="md-nav__item">
   620      <a href="../../Running-Backups/Backups/" title="Backups" class="md-nav__link">
   621        Backups
   622      </a>
   623    </li>
   624  
   625          
   626        </ul>
   627      </nav>
   628    </li>
   629  
   630      
   631        
   632        
   633        
   634  
   635  
   636    <li class="md-nav__item md-nav__item--nested">
   637      
   638        <input class="md-toggle md-nav__toggle" data-md-toggle="nav-11" type="checkbox" id="nav-11">
   639      
   640      <label class="md-nav__link" for="nav-11">
   641        System Configuration
   642      </label>
   643      <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
   644        <label class="md-nav__title" for="nav-11">
   645          System Configuration
   646        </label>
   647        <ul class="md-nav__list" data-md-scrollfix>
   648          
   649          
   650            
   651            
   652            
   653  
   654  
   655    <li class="md-nav__item">
   656      <a href="../../System-Configuration/Settings/" title="Settings" class="md-nav__link">
   657        Settings
   658      </a>
   659    </li>
   660  
   661          
   662        </ul>
   663      </nav>
   664    </li>
   665  
   666      
   667        
   668        
   669        
   670  
   671    
   672  
   673  
   674    <li class="md-nav__item md-nav__item--active md-nav__item--nested">
   675      
   676        <input class="md-toggle md-nav__toggle" data-md-toggle="nav-12" type="checkbox" id="nav-12" checked>
   677      
   678      <label class="md-nav__link" for="nav-12">
   679        System Deployment
   680      </label>
   681      <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
   682        <label class="md-nav__title" for="nav-12">
   683          System Deployment
   684        </label>
   685        <ul class="md-nav__list" data-md-scrollfix>
   686          
   687          
   688            
   689            
   690            
   691  
   692  
   693    <li class="md-nav__item">
   694      <a href="../Docker/" title="Docker" class="md-nav__link">
   695        Docker
   696      </a>
   697    </li>
   698  
   699          
   700            
   701            
   702            
   703  
   704    
   705  
   706  
   707    <li class="md-nav__item md-nav__item--active">
   708      
   709      <input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="toc">
   710      
   711      
   712      <a href="./" title="SysV Style" class="md-nav__link md-nav__link--active">
   713        SysV Style
   714      </a>
   715      
   716    </li>
   717  
   718          
   719        </ul>
   720      </nav>
   721    </li>
   722  
   723      
   724    </ul>
   725  </nav>
   726                    </div>
   727                  </div>
   728                </div>
   729              
   730              
   731                <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
   732                  <div class="md-sidebar__scrollwrap">
   733                    <div class="md-sidebar__inner">
   734                      
   735  <nav class="md-nav md-nav--secondary">
   736    
   737    
   738    
   739  </nav>
   740                    </div>
   741                  </div>
   742                </div>
   743              
   744            
   745            <div class="md-content">
   746              <article class="md-content__inner md-typeset">
   747                
   748                  
   749                  
   750                    <h1>SysV Style</h1>
   751                  
   752                  <p>For reference, here is an example init script to run Ponzu servers. You must 
   753  define the <code>PROJECT_DIR</code> &amp; <code>RUNAS</code> variables by replacing <code>&lt;PROJECT DIRECTORY&gt;</code>
   754  &amp; <code>&lt;USER&gt;</code> in the script below:</p>
   755  <div class="codehilite"><pre><span></span><span class="ch">#!/bin/sh</span>
   756  <span class="c1">### BEGIN INIT INFO</span>
   757  <span class="c1"># Provides:          ponzu-server</span>
   758  <span class="c1"># Required-Start:    $local_fs $network $named $time $syslog</span>
   759  <span class="c1"># Required-Stop:     $local_fs $network $named $time $syslog</span>
   760  <span class="c1"># Default-Start:     2 3 4 5</span>
   761  <span class="c1"># Default-Stop:      0 1 6</span>
   762  <span class="c1"># Description:       Ponzu API &amp; Admin server</span>
   763  <span class="c1">### END INIT INFO</span>
   764  
   765  <span class="nv">PROJECT_DIR</span><span class="o">=</span>&lt;PROJECT DIRECTORY&gt;
   766  <span class="nv">SCRIPT</span><span class="o">=</span><span class="s1">&#39;cd $PROJECT_DIR &amp;&amp; ponzu run --port=80&#39;</span> <span class="c1"># add --https here to get TLS/HTTPS</span>
   767  <span class="nv">RUNAS</span><span class="o">=</span>&lt;USER&gt;
   768  
   769  <span class="nv">PIDFILE</span><span class="o">=</span>/var/run/ponzu-server.pid
   770  <span class="nv">LOGFILE</span><span class="o">=</span>/var/log/ponzu-server.log
   771  
   772  start<span class="o">()</span> <span class="o">{</span>
   773    <span class="k">if</span> <span class="o">[</span> -f /var/run/<span class="nv">$PIDNAME</span> <span class="o">]</span> <span class="o">&amp;&amp;</span> <span class="nb">kill</span> -0 <span class="k">$(</span>cat /var/run/<span class="nv">$PIDNAME</span><span class="k">)</span><span class="p">;</span> <span class="k">then</span>
   774      <span class="nb">echo</span> <span class="s1">&#39;Service already running&#39;</span> &gt;<span class="p">&amp;</span><span class="m">2</span>
   775      <span class="k">return</span> <span class="m">1</span>
   776    <span class="k">fi</span>
   777    <span class="nb">echo</span> <span class="s1">&#39;Starting service…&#39;</span> &gt;<span class="p">&amp;</span><span class="m">2</span>
   778    <span class="nb">local</span> <span class="nv">CMD</span><span class="o">=</span><span class="s2">&quot;</span><span class="nv">$SCRIPT</span><span class="s2"> &amp;&gt; \&quot;</span><span class="nv">$LOGFILE</span><span class="s2">\&quot; &amp; echo \$!&quot;</span>
   779    su -c <span class="s2">&quot;</span><span class="nv">$CMD</span><span class="s2">&quot;</span> <span class="nv">$RUNAS</span> &gt; <span class="s2">&quot;</span><span class="nv">$PIDFILE</span><span class="s2">&quot;</span>
   780    <span class="nb">echo</span> <span class="s1">&#39;Service started&#39;</span> &gt;<span class="p">&amp;</span><span class="m">2</span>
   781  <span class="o">}</span>
   782  
   783  stop<span class="o">()</span> <span class="o">{</span>
   784    <span class="k">if</span> <span class="o">[</span> ! -f <span class="s2">&quot;</span><span class="nv">$PIDFILE</span><span class="s2">&quot;</span> <span class="o">]</span> <span class="o">||</span> ! <span class="nb">kill</span> -0 <span class="k">$(</span>cat <span class="s2">&quot;</span><span class="nv">$PIDFILE</span><span class="s2">&quot;</span><span class="k">)</span><span class="p">;</span> <span class="k">then</span>
   785      <span class="nb">echo</span> <span class="s1">&#39;Service not running&#39;</span> &gt;<span class="p">&amp;</span><span class="m">2</span>
   786      <span class="k">return</span> <span class="m">1</span>
   787    <span class="k">fi</span>
   788    <span class="nb">echo</span> <span class="s1">&#39;Stopping service…&#39;</span> &gt;<span class="p">&amp;</span><span class="m">2</span>
   789    <span class="nb">kill</span> -15 <span class="k">$(</span>cat <span class="s2">&quot;</span><span class="nv">$PIDFILE</span><span class="s2">&quot;</span><span class="k">)</span> <span class="o">&amp;&amp;</span> rm -f <span class="s2">&quot;</span><span class="nv">$PIDFILE</span><span class="s2">&quot;</span>
   790    <span class="nb">echo</span> <span class="s1">&#39;Service stopped&#39;</span> &gt;<span class="p">&amp;</span><span class="m">2</span>
   791  <span class="o">}</span>
   792  
   793  uninstall<span class="o">()</span> <span class="o">{</span>
   794    <span class="nb">echo</span> -n <span class="s2">&quot;Are you really sure you want to uninstall this service? That cannot be undone. [yes|No] &quot;</span>
   795    <span class="nb">local</span> SURE
   796    <span class="nb">read</span> SURE
   797    <span class="k">if</span> <span class="o">[</span> <span class="s2">&quot;</span><span class="nv">$SURE</span><span class="s2">&quot;</span> <span class="o">=</span> <span class="s2">&quot;yes&quot;</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
   798      stop
   799      rm -f <span class="s2">&quot;</span><span class="nv">$PIDFILE</span><span class="s2">&quot;</span>
   800      <span class="nb">echo</span> <span class="s2">&quot;Notice: log file is not be removed: &#39;</span><span class="nv">$LOGFILE</span><span class="s2">&#39;&quot;</span> &gt;<span class="p">&amp;</span><span class="m">2</span>
   801      update-rc.d -f &lt;NAME&gt; remove
   802      rm -fv <span class="s2">&quot;</span><span class="nv">$0</span><span class="s2">&quot;</span>
   803    <span class="k">fi</span>
   804  <span class="o">}</span>
   805  
   806  <span class="k">case</span> <span class="s2">&quot;</span><span class="nv">$1</span><span class="s2">&quot;</span> in
   807    start<span class="o">)</span>
   808      start
   809      <span class="p">;;</span>
   810    stop<span class="o">)</span>
   811      stop
   812      <span class="p">;;</span>
   813    uninstall<span class="o">)</span>
   814      uninstall
   815      <span class="p">;;</span>
   816    restart<span class="o">)</span>
   817      stop
   818      start
   819      <span class="p">;;</span>
   820    *<span class="o">)</span>
   821      <span class="nb">echo</span> <span class="s2">&quot;Usage: </span><span class="nv">$0</span><span class="s2"> {start|stop|restart|uninstall}&quot;</span>
   822  <span class="k">esac</span>
   823  </pre></div>
   824                  
   825                    
   826                  
   827                
   828                
   829                  
   830                
   831              </article>
   832            </div>
   833          </div>
   834        </main>
   835        
   836          
   837  <footer class="md-footer">
   838    
   839      <div class="md-footer-nav">
   840        <nav class="md-footer-nav__inner md-grid">
   841          
   842            <a href="../Docker/" title="Docker" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
   843              <div class="md-flex__cell md-flex__cell--shrink">
   844                <i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
   845              </div>
   846              <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
   847                <span class="md-flex__ellipsis">
   848                  <span class="md-footer-nav__direction">
   849                    Previous
   850                  </span>
   851                  Docker
   852                </span>
   853              </div>
   854            </a>
   855          
   856          
   857        </nav>
   858      </div>
   859    
   860    <div class="md-footer-meta md-typeset">
   861      <div class="md-footer-meta__inner md-grid">
   862        <div class="md-footer-copyright">
   863          
   864          powered by
   865          <a href="http://www.mkdocs.org" title="MkDocs">MkDocs</a>
   866          and
   867          <a href="http://squidfunk.github.io/mkdocs-material/" title="Material for MkDocs">
   868            Material for MkDocs</a>
   869        </div>
   870        
   871          
   872    <div class="md-footer-social">
   873      
   874      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
   875      
   876        <a href="https://github.com/rpdict" class="md-footer-social__link fa fa-github"></a>
   877      
   878        <a href="https://twitter.com/ponzu_cms" class="md-footer-social__link fa fa-twitter"></a>
   879      
   880    </div>
   881  
   882        
   883      </div>
   884    </div>
   885  </footer>
   886        
   887      </div>
   888      
   889        <script src="../../assets/javascripts/application-6b599127bc.js"></script>
   890        <script>app.initialize({url:{base:"../.."}})</script>
   891        
   892      
   893      
   894        
   895        <script>!function(e,t,a,n,o,c,i){e.GoogleAnalyticsObject=o,e[o]=e[o]||function(){(e[o].q=e[o].q||[]).push(arguments)},e[o].l=1*new Date,c=t.createElement(a),i=t.getElementsByTagName(a)[0],c.async=1,c.src=n,i.parentNode.insertBefore(c,i)}(window,document,"script","https://www.google-analytics.com/analytics.js","ga"),ga("create","UA-98609560-1","auto"),ga("set","anonymizeIp",!0),ga("send","pageview");var links=document.getElementsByTagName("a");Array.prototype.map.call(links,function(e){e.host!=document.location.host&&e.addEventListener("click",function(){var t=e.getAttribute("data-md-action")||"follow";ga("send","event","outbound",t,e.href)})});var query=document.forms.search.query;query.addEventListener("blur",function(){if(this.value){var e=document.location.pathname;ga("send","pageview",e+"?q="+this.value)}})</script>
   896        
   897      
   898    </body>
   899  </html>