summaryrefslogtreecommitdiffabout
authorSergey Poznyakoff <gray@gnu.org>2018-05-15 09:50:50 (GMT)
committer Sergey Poznyakoff <gray@gnu.org>2018-05-15 10:04:59 (GMT)
commitd0004608cb066135457dffafec10926d43f30eab (patch) (side-by-side diff)
treeba8179347ffcb5cf1aea265cb97e94fcfb0f7970
parentb5f4388a2da1b94ce8c8e45a990fd51b2f52dae4 (diff)
downloadgenrc-d0004608cb066135457dffafec10926d43f30eab.tar.gz
genrc-d0004608cb066135457dffafec10926d43f30eab.tar.bz2
Add documentation.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--README83
-rw-r--r--configure.ac17
-rw-r--r--src/Makefile.am20
-rw-r--r--src/com_reload.c6
-rw-r--r--src/com_restart.c6
-rw-r--r--src/com_start.c6
-rw-r--r--src/com_status.c6
-rw-r--r--src/com_stop.c6
-rw-r--r--src/err.c6
-rw-r--r--src/genrc.8291
-rw-r--r--src/genrc.c6
-rw-r--r--src/genrc.h6
-rw-r--r--src/match_exact.c6
-rw-r--r--src/match_glob.c6
-rw-r--r--src/match_pcre.c6
-rw-r--r--src/match_regex.c6
-rw-r--r--src/pid_config.c6
-rw-r--r--src/pid_file.c6
-rw-r--r--src/pid_grep.c6
-rw-r--r--src/pid_proc.c6
-rw-r--r--src/pid_ps.c6
-rw-r--r--src/pidfrom.c6
-rw-r--r--src/pidlist.c6
-rw-r--r--src/procscan.c6
-rw-r--r--src/sentinel.c6
25 files changed, 534 insertions, 3 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..e9a0c5b
--- a/dev/null
+++ b/README
@@ -0,0 +1,83 @@
+* Overview
+
+This is a generic helper program for writing system initialization
+scripts. Depending on the operation mode, it starts, stops,
+reconfigures or displays the status of a specific program.
+
+Primary audience is Slackware system administrators. However, the
+tool is generic enough to be used on any other Linux (and not only)
+distribution.
+
+In the contrast to another similar programs like start-stop-daemon,
+it is designed so that the entire rc file can consist of only one
+line, invoking (or exec'ing) genrc with the right set of arguments.
+
+* Example
+
+The following is the example /etc/rc.d/rc.ntpd script:
+
+#! /bin/sh
+PIDFILE=/var/run/ntpd.pid
+exec /sbin/genrc \
+ --command="/usr/sbin/ntpd -g -p $PIDFILE" \
+ --no-reload \
+ --signal-stop=SIGHUP \
+ --pid-from="FILE:$PIDFILE" "$@"
+
+* Downloads
+
+This and newer versions of genrc can be downloaded from
+
+ http://download.gnu.org.ua/release/genrc
+
+For the recent development sources, see
+
+ http://git.gnu.org.ua/cgit/genrc.git
+
+* Building
+
+When building from source package, usual incantations apply:
+
+ ./configure
+ make
+ make install
+
+If you are building from a clone of the Git repository, you will need
+GNU autotools to bootstrap the package first. Run
+
+ autoreconf -f -i -s
+
+in the top level source directory. This will create the configure
+script and populate the directory with the missing files. Then proceed
+as described above.
+
+* Documentation
+
+Manpage genrc.8 included. After installing the package, run
+man genrc.
+
+* Bug reporting.
+
+Send bug reports to <gray@gnu.org>.
+
+
+* Copyright information:
+
+Copyright (C) 2018 Sergey Poznyakoff
+
+ Permission is granted to anyone to make or distribute verbatim copies
+ of this document as received, in any medium, provided that the
+ copyright notice and this permission notice are preserved,
+ thus giving the recipient permission to redistribute in turn.
+
+ Permission is granted to distribute modified versions
+ of this document, or of portions of it,
+ under the above conditions, provided also that they
+ carry prominent notices stating who last changed them.
+
+
+Local Variables:
+mode: outline
+paragraph-separate: "[ ]*$"
+version-control: never
+End:
diff --git a/configure.ac b/configure.ac
index 764cddc..5b4774a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,18 @@
-# -*- Autoconf -*-
-# Process this file with autoconf to produce a configure script.
+# This file is part of genrc. -*- Autoconf -*-
+# Copyright (C) 2018 Sergey Poznyakoff.
+#
+# Genrc is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# Genrc is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with genrc. If not, see <http://www.gnu.org/licenses/>.
AC_PREREQ([2.69])
AC_INIT([genrc], [0.1], [gray@gnu.org])
diff --git a/src/Makefile.am b/src/Makefile.am
index fe24f3e..f78a979 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,4 +1,20 @@
-bin_PROGRAMS = genrc
+# This file is part of genrc.
+# Copyright (C) 2018 Sergey Poznyakoff.
+#
+# Genrc is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# Genrc is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with genrc. If not, see <http://www.gnu.org/licenses/>.
+
+sbin_PROGRAMS = genrc
genrc_SOURCES = \
genrc.c\
genrc.h\
@@ -30,3 +46,5 @@ if COND_PCRE
AM_CPPFLAGS += -DHAVE_PCRE=1
endif
+dist_man_MANS=genrc.8
+
diff --git a/src/com_reload.c b/src/com_reload.c
index 7ff1206..fd12e7d 100644
--- a/src/com_reload.c
+++ b/src/com_reload.c
@@ -1,3 +1,9 @@
+/* This file is part of genrc
+Copyryght (C) 2018 Sergey Poznyakoff
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+*/
#include "genrc.h"
int
diff --git a/src/com_restart.c b/src/com_restart.c
index b3588a1..1b47277 100644
--- a/src/com_restart.c
+++ b/src/com_restart.c
@@ -1,3 +1,9 @@
+/* This file is part of genrc
+Copyryght (C) 2018 Sergey Poznyakoff
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+*/
#include "genrc.h"
int
diff --git a/src/com_start.c b/src/com_start.c
index 73bb2ec..93c324e 100644
--- a/src/com_start.c
+++ b/src/com_start.c
@@ -1,3 +1,9 @@
+/* This file is part of genrc
+Copyryght (C) 2018 Sergey Poznyakoff
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+*/
#include "genrc.h"
void
diff --git a/src/com_status.c b/src/com_status.c
index f68c6ef..e0e68c7 100644
--- a/src/com_status.c
+++ b/src/com_status.c
@@ -1,3 +1,9 @@
+/* This file is part of genrc
+Copyryght (C) 2018 Sergey Poznyakoff
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+*/
#include "genrc.h"
int
diff --git a/src/com_stop.c b/src/com_stop.c
index 5227358..1cb4452 100644
--- a/src/com_stop.c
+++ b/src/com_stop.c
@@ -1,3 +1,9 @@
+/* This file is part of genrc
+Copyryght (C) 2018 Sergey Poznyakoff
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+*/
#include "genrc.h"
static void
diff --git a/src/err.c b/src/err.c
index 539a7b8..64731f3 100644
--- a/src/err.c
+++ b/src/err.c
@@ -1,3 +1,9 @@
+/* This file is part of genrc
+Copyryght (C) 2018 Sergey Poznyakoff
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+*/
#include "genrc.h"
char *progname = "genrc";
diff --git a/src/genrc.8 b/src/genrc.8
new file mode 100644
index 0000000..1255b45
--- a/dev/null
+++ b/src/genrc.8
@@ -0,0 +1,291 @@
+.\" This file is part of genrc.
+.\" Copyright (C) 2018 Sergey Poznyakoff.
+.\"
+.\" Genrc is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 3, or (at your option)
+.\" any later version.
+.\"
+.\" Genrc is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with genrc. If not, see <http://www.gnu.org/licenses/>.
+.TH GENRC 8 "May 15, 2018" "GENRC" "Genrc User Manual"
+.SH NAME
+genrc \- generic system initialization script helper
+.SH SYNOPSIS
+.nh
+\fBgenrc\fR\
+ [\fB\-h\fR]\
+ [\fB\-F\fR \fIPIDFILE\fR]\
+ [\fB\-P\fR \fISOURCE\fR]\
+ [\fB\-c\fR \fICOMMAND\fR]\
+ [\fB\-p\fR \fIPROGRAM\fR]\
+ [\fB\-t\fR \fISECONDS\fR]\
+ [\fB\-\-command=\fICOMMAND\fR]\
+ [\fB\-\-help\fR]\
+ [\fB\-\-no\-reload\fR]\
+ [\fB\-\-pid\-from=\fISOURCE\fR]\
+ [\fB\-\-pidfile=\fIPIDFILE\fR]\
+ [\fB\-\-program=\fIPROGRAM\fR]\
+ [\fB\-\-sentinel\fR]\
+ [\fB\-\-signal\-reload=\fISIG\fR]\
+ [\fB\-\-signal\-stop=\fISIG\fR]\
+ [\fB\-\-timeout=\fISECONDS\fR]\
+ [\fB\-\-usage\fR]\
+ {\
+ \fBstart\fR\
+ |\
+ \fBstop\fR\
+ |\
+ \fBrestart\fR\
+ |\
+ \fBreload\fR\
+ |\
+ \fBstatus\fR\
+ }
+.ad
+.hy
+.SH DESCRIPTION
+.B genrc
+is a generic helper program for writing system initialization
+scripts. Depending on the operation mode, it starts, stops,
+reconfigures or displays the status of a specific program.
+.PP
+The operation mode of the program is set by its only mandatory
+argument. Other program settings are specified via the command
+line options or environment variables. Most options have a
+corresponding environment variable. For example, the command line
+of the program to be run is given by the \fB\-\-command\fR option,
+or by the \fBGENRC_COMMAND\fR environment variable. If both the
+variable is set and the option is supplied, the later takes precedence
+over the former.
+.PP
+The \fB\-\-program\fR option or the \fBGENRC_PROGRAM\fR environment
+variable supplies the name of the program, which is used to determine
+whether the program is already running. If not supplied, the first
+word (in the shell sense) from \fICOMMAND\fR is used.
+.PP
+If \fB\-\-program\fR is given, but \fB\-\-command\fR is not, its value
+will be used as the command to run.
+.PP
+The program operation modes are:
+.SS start
+If given \fBstart\fR argument, \fBgenrc\fR runs the supplier
+command. Before, it checks if the program is not already running and
+refuses to start its second copy if so.
+.PP
+It is supposed that the program to be run will detach from the
+controlling terminal and continue running in the background (i.e. it
+is a \fIdaemon\fR, in UNIX sense). If it is not the case, use the
+\fB\-\-sentinel\fR option. With this option, \fBgenrc\fR will start
+the command and will become daemon itself, controlling the execution
+of the program. It will exit when the command terminates. So long as
+the command runs, \fBgenrc\fR will pipe its standard output and error
+to syslog facility \fBdaemon\fR. The standard output will be logged
+with the priority \fBinfo\fR and the error with the priority
+\fBerr\fR.
+.PP
+If the \fB\-\-pidfile=\fIFILE\fR option is given together with
+\fB\-\-sentinel\fR, the PID of the subsidiary command will be stored
+in \fIFILE\fR. The file will be unlinked after the subsidiary command
+terminates.
+.SS status
+In \fBstatus\fR mode \fBgenrc\fR verifies if the \fICOMMAND\fR is
+already running and outputs its status on the standard output. To this
+effect, it uses an abstraction called \fIPID source\fR, which allows
+it to determine the PID of the program by its name of command line.
+.PP
+The default PID source is the Linux \fB/proc\fR filesystem (or, if it
+is not available, the output of \fBps -ef\fR), which is scanned for
+the name of the program (given by \fB\-\-program\fR or
+\fB\-\-command\fR options).
+.PP
+The source to use can be supplied with the \fB\-\-pid\-from\fR option
+(or the \fB\-\-pidfile option, which is equivalent to
+\fB\-\-pid\-from=FILE:\fR). See the section \fBPID SOURCES\fR for a
+detailed discussion of available sources.
+.SS stop
+In the \fBstop\fR mode \fBgenrc\fR stops the command by sending it
+\fBSIGTERM\fR (or another signal as supplied with the
+\fB\-\-signal\-stop\fR option). If the PID source returns multiple
+PIDs, by default only parent PID is selected. However, \fBgenrc\fR can
+be instructed to signal all PIDs instead (see the \fBa\fR flag in the
+description of \fBPROC\fR or \fBPS\fR PID source).
+.PP
+After sending the signal, the program will wait for all processes to
+terminate. It will report error if they don't terminate within 5
+seconds. This timeout can be changed using the \fB\-\-timeout\fR
+option.
+.SS restart
+Restarts the program. It is equivalent to running
+.B genrc stop
+immediately followed by
+.BR "genrc start" .
+.SS reload
+Attempt to reload (or reconfigure) the program by sending it the
+\fBSIGHUP\fR signal (or another signal, as given with the
+\fB\-\-signal\-reload\fR option). The \fB\-\-no\-reload\fR or
+\fB\-\-signal\-reload=0\fR option disables this behavior, making
+this mode equivalent to
+.BR "genrc restart" .
+.SH EXAMPLE
+Following is a sample \fBrc.ntpd\fR file for Slackware:
+.sp
+.EX
+#! /bin/sh
+PIDFILE=/var/run/ntpd.pid
+exec /sbin/genrc \\
+ \-\-command="/usr/sbin/ntpd \-g \-p $PIDFILE" \\
+ \-\-no\-reload \\
+ \-\-signal\-stop=SIGHUP \\
+ \-\-pid\-from="FILE:$PIDFILE" "$@"
+.EE
+.SH OPTIONS
+.TP
+\fB\-c\fR, \fB\-\-command=\fICOMMAND\fR
+Command line to run.
+.TP
+\fB\-F\fR, \fB\-\-pidfile=\fINAME\fR
+Name of the PID file (same as \fB\-\-pid\-from=FILE:\fINAME\fR)
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Display a short help list.
+.TP
+\fB\-\-no\-reload\fR
+Makes \fBreload\fR equivalent to \fBrestart\fR.
+.TP
+\fB\-p\fR, \fB\-\-program=\fIPROGRAM\fR
+Name of the program to run.
+.TP
+\fB\-P\fR, \fB\-\-pid\-from=\fISOURCE\fR
+Where to look for PIDs of the running programs.
+.TP
+\fB\-\-sentinel\fR
+\fIPROGRAM\fR runs in foreground; disconnect from the controlling
+terminal, run it and act as a sentinel.
+.TP
+\fB\-\-signal\-reload=\fISIG\fR
+Signal to send on reload (default: \fBSIGHUP\fR). Setting it to 0 is
+equivalent to \fB\-\-no\-reload\fR.
+.TP
+\fB\-\-signal\-stop=\fISIG\fR
+Signal to send in order to terminate the program (default:
+\fBSIGTERM\fR).
+.TP
+\fB\-t\fR, \fB\-\-timeout=\fISECONDS\fR
+Time to wait for the program to start up or terminate.
+.TP
+\fB\-\-usage\fR
+Display a short usage summary.
+.TP
+\fB\-\-version\fR
+Display program version and exit.
+.SH PID SOURCES
+.TP
+\fBFILE:\fIFILENAME\fR
+Read PID from the file \fIFILENAME\fR.
+.TP
+\fBCONFIG:\fILANG\fB:\fIFILENAME\fB:\fIFQRN\fR
+Name of the PID file is stored in relation \fIFQRN\fR of the configuration
+file \fIFILENAME\fR, written in language \fILANG\fR. Recognizable
+\fILANG\fR values are:
+.RS
+.TP
+.B BIND
+ISC BIND configuration file.
+.TP
+.B DHCPD
+ISC DHCPD configuration file.
+.TP
+.B GIT
+Git-style configuration file.
+.TP
+.B GRECS
+GRECS-style configuration file. This is a generalization of a
+structured configuration file format.
+.TP
+.B META1
+META1 configuration file.
+.TP
+.B PATH
+Configuration specified as fully-qualified keyword-value pairs
+(similar to \fB.Xdefaults\fR).
+.RE
+.TP
+\fBGREP:\fIFILE\fB:s/\fIRX\fB/\fIREPL\fB/[\fIFLAGS\fR][\fB;\fR...]
+Grep for the first line in \fIFILE\fR that matches \fIRX\fR. If found, process
+replace the matched portion according to \fIREPL\fR and \fIFLAGS\fR. Use
+the resulting string as PID. More sed expressions can be supplied,
+separated with semicolons.
+.TP
+\fBPROC\fR[\fB:\fR[\fIEXE\fR][\fB:\fIFLAGS\fR]]
+Look for matching program in \fB/proc/\fIPID\fB/*\fR. If \fIEXE\fR is
+not supplied or empty, program name from \fB\-\-program\fR will be
+used. \fIFLAGS\fR are:
+.RS
+.TP
+.B e
+exact match
+.TP
+.B g
+glob pattern match
+.TP
+.B x
+extended POSIX regexp match (default)
+.TP
+.B p
+PCRE match
+.TP
+.B i
+case-insensitive match
+.TP
+.B c
+match entire command line
+.TP
+.B r
+match real executable name (instead of argv0)
+.TP
+.B a
+signal all matching PIDs
+.RE
+.TP
+\fBPS:\fR[\fB:\fR[\fIEXE\fR][:\fIFLAGS\fR]]
+Look for matching program in the output of \fBps \-ef\fR. \fIEXE\fR
+and \fIFLAGS\fR are as described above.
+.SH ENVIRONMENT
+Influential environment variables and corresponding options:
+.sp
+.nf
+.ta 5n 35n
+.ul
+ \fBGENRC_COMMAND=\fICOMMAND\fR \fB\-\-command=\fICOMMAND\fR
+ \fBGENRC_PROGRAM=\fINAME\fR \fB\-\-program=\fINAME\fR
+ \fBGENRC_PID_FROM=\fISOURCE\fR \fB\-\-pid\-from=\fISOURCE\fR
+ \fBGENRC_TIMEOUT=\fISECONDS\fR \fB\-\-timeout=\fISECONDS\fR
+ \fBGENRC_SENTINEL=1\fR \fB\-\-sentinel\fR
+.fi
+.SH AUTHORS
+Sergey Poznyakoff
+.SH "BUG REPORTS"
+Report bugs to <gray@gnu.org>.
+.SH COPYRIGHT
+Copyright \(co 2018 Sergey Poznyakoff
+.br
+.na
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+.br
+.ad
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+.\" Local variables:
+.\" eval: (add-hook 'write-file-hooks 'time-stamp)
+.\" time-stamp-start: ".TH [A-Z_][A-Z0-9_.\\-]* [0-9] \""
+.\" time-stamp-format: "%:B %:d, %:y"
+.\" time-stamp-end: "\""
+.\" time-stamp-line-limit: 20
+.\" end:
+
diff --git a/src/genrc.c b/src/genrc.c
index 64dd81a..ecc26fe 100644
--- a/src/genrc.c
+++ b/src/genrc.c
@@ -1,3 +1,9 @@
+/* This file is part of genrc
+Copyryght (C) 2018 Sergey Poznyakoff
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+*/
#include "genrc.h"
#include <sys/ioctl.h>
diff --git a/src/genrc.h b/src/genrc.h
index f782fd5..82e29d6 100644
--- a/src/genrc.h
+++ b/src/genrc.h
@@ -1,3 +1,9 @@
+/* This file is part of genrc
+Copyryght (C) 2018 Sergey Poznyakoff
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+*/
#include <config.h>
#include <stdlib.h>
#include <stdio.h>
diff --git a/src/match_exact.c b/src/match_exact.c
index 49be17f..2a2caf4 100644
--- a/src/match_exact.c
+++ b/src/match_exact.c
@@ -1,3 +1,9 @@
+/* This file is part of genrc
+Copyryght (C) 2018 Sergey Poznyakoff
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+*/
#include "genrc.h"
void
diff --git a/src/match_glob.c b/src/match_glob.c
index d2dfd71..23577ee 100644
--- a/src/match_glob.c
+++ b/src/match_glob.c
@@ -1,3 +1,9 @@
+/* This file is part of genrc
+Copyryght (C) 2018 Sergey Poznyakoff
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+*/
#include "genrc.h"
#define _GNU_SOURCE 1
#include <fnmatch.h>
diff --git a/src/match_pcre.c b/src/match_pcre.c
index 55c4714..dac61cf 100644
--- a/src/match_pcre.c
+++ b/src/match_pcre.c
@@ -1,3 +1,9 @@
+/* This file is part of genrc
+Copyryght (C) 2018 Sergey Poznyakoff
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+*/
#include "genrc.h"
#include <pcre.h>
diff --git a/src/match_regex.c b/src/match_regex.c
index fc666c9..b8549bf 100644
--- a/src/match_regex.c
+++ b/src/match_regex.c
@@ -1,3 +1,9 @@
+/* This file is part of genrc
+Copyryght (C) 2018 Sergey Poznyakoff
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+*/
#include "genrc.h"
static char *
diff --git a/src/pid_config.c b/src/pid_config.c
index b646cc0..0a10c4c 100644
--- a/src/pid_config.c
+++ b/src/pid_config.c
@@ -1,3 +1,9 @@
+/* This file is part of genrc
+Copyryght (C) 2018 Sergey Poznyakoff
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+*/
#include "genrc.h"
typedef struct grecs_node *(*GRECS_PARSER_FUNC)(const char *, int);
diff --git a/src/pid_file.c b/src/pid_file.c
index 344de12..6164463 100644
--- a/src/pid_file.c
+++ b/src/pid_file.c
@@ -1,3 +1,9 @@
+/* This file is part of genrc
+Copyryght (C) 2018 Sergey Poznyakoff
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+*/
#include "genrc.h"
struct file_pid_closure {
diff --git a/src/pid_grep.c b/src/pid_grep.c
index 8869a2d..76740ac 100644
--- a/src/pid_grep.c
+++ b/src/pid_grep.c
@@ -1,3 +1,9 @@
+/* This file is part of genrc
+Copyryght (C) 2018 Sergey Poznyakoff
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+*/
#include "genrc.h"
/*
diff --git a/src/pid_proc.c b/src/pid_proc.c
index e460dff..097c2ed 100644
--- a/src/pid_proc.c
+++ b/src/pid_proc.c
@@ -1,3 +1,9 @@
+/* This file is part of genrc
+Copyryght (C) 2018 Sergey Poznyakoff
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+*/
#include "genrc.h"
#include <glob.h>
#include <sys/stat.h>
diff --git a/src/pid_ps.c b/src/pid_ps.c
index 573304d..ff224da 100644
--- a/src/pid_ps.c
+++ b/src/pid_ps.c
@@ -1,3 +1,9 @@
+/* This file is part of genrc
+Copyryght (C) 2018 Sergey Poznyakoff
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+*/
#include "genrc.h"
struct ps_pid_closure {
diff --git a/src/pidfrom.c b/src/pidfrom.c
index ab1f623..d1fa627 100644
--- a/src/pidfrom.c
+++ b/src/pidfrom.c
@@ -1,3 +1,9 @@
+/* This file is part of genrc
+Copyryght (C) 2018 Sergey Poznyakoff
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+*/
#include "genrc.h"
struct genrc_pid_source {
diff --git a/src/pidlist.c b/src/pidlist.c
index cf47c2e..1dc5893 100644
--- a/src/pidlist.c
+++ b/src/pidlist.c
@@ -1,3 +1,9 @@
+/* This file is part of genrc
+Copyryght (C) 2018 Sergey Poznyakoff
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+*/
#include "genrc.h"
void *
diff --git a/src/procscan.c b/src/procscan.c
index 1425f6a..d51a7b9 100644
--- a/src/procscan.c
+++ b/src/procscan.c
@@ -1,3 +1,9 @@
+/* This file is part of genrc
+Copyryght (C) 2018 Sergey Poznyakoff
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+*/
#include "genrc.h"
struct flagdfn {
diff --git a/src/sentinel.c b/src/sentinel.c
index 0fe0714..55395b3 100644
--- a/src/sentinel.c
+++ b/src/sentinel.c
@@ -1,3 +1,9 @@
+/* This file is part of genrc
+Copyryght (C) 2018 Sergey Poznyakoff
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+*/
#include "genrc.h"
#include <unistd.h>
#include <fcntl.h>

Return to:

Send suggestions and report system problems to the System administrator.