apa cara kanonik untuk memulai daemon dalam skrip init rhel / centos-6?

11

Saya menemukan banyak dokumentasi yang bagus untuk start-stop-daemon ubuntu dan ada halaman manual untuk biner daemon.

Tapi dari apa yang saya tahu cara kanonik untuk memulai daemon dalam skrip rhel / centos adalah dengan sumber /etc/init.d/functionslalu gunakan daemon()fungsinya. Tetapi saya tidak dapat menemukan contoh atau dokumentasi yang bagus.

Apa cara kanonik untuk memulai daemon dalam skrip init rhel / centos-6?

Upaya pertama saya adalah:

#!/bin/bash
source /etc/init.d/functions
daemon --user USER nohup /path/to/your/binary arg1 arg2 >/dev/null 2>&1 &
Trevor Boyd Smith
sumber
@Christopher Saya memperbarui pertanyaan (tidak systemd)
Trevor Boyd Smith

Jawaban:

10

Dokumentasi dan contoh yang Anda cari ada di /usr/share/doc/initscripts-*/sysvinitfilesCentOS / RHEL. Berikut adalah dokumentasi untuk daemonfungsi tersebut secara khusus:

daemon [--check] [--user] [+/- nicelevel] program [argumen] [&]

    Starts a daemon, if it is not already running.  Does
    other useful things like keeping the daemon from dumping
    core if it terminates unexpectedly.

    --check <name>:
       Check that <name> is running, as opposed to simply the
       first argument passed to daemon().
    --user <username>:
       Run command as user <username>

Dengan CentOS / RHEL 6, Anda juga memiliki opsi untuk menggunakan file pekerjaan pemula daripada menulis skrip init sysv.

jordanm
sumber
1
Ini persis apa yang saya cari: 1. dokumentasi nyata 2. pedoman tentang apakah saya harus menambahkan &di akhir baris atau tidak (ada perintah daemon serupa lainnya yang melakukan &operasi latar belakang untuk Anda)
Trevor Boyd Smith