diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2018-05-15 12:50:50 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2018-05-15 13:04:59 +0300 |
commit | d0004608cb066135457dffafec10926d43f30eab (patch) | |
tree | ba8179347ffcb5cf1aea265cb97e94fcfb0f7970 /src | |
parent | b5f4388a2da1b94ce8c8e45a990fd51b2f52dae4 (diff) | |
download | genrc-d0004608cb066135457dffafec10926d43f30eab.tar.gz genrc-d0004608cb066135457dffafec10926d43f30eab.tar.bz2 |
Add documentation.
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 20 | ||||
-rw-r--r-- | src/com_reload.c | 6 | ||||
-rw-r--r-- | src/com_restart.c | 6 | ||||
-rw-r--r-- | src/com_start.c | 6 | ||||
-rw-r--r-- | src/com_status.c | 6 | ||||
-rw-r--r-- | src/com_stop.c | 6 | ||||
-rw-r--r-- | src/err.c | 6 | ||||
-rw-r--r-- | src/genrc.8 | 291 | ||||
-rw-r--r-- | src/genrc.c | 6 | ||||
-rw-r--r-- | src/genrc.h | 6 | ||||
-rw-r--r-- | src/match_exact.c | 6 | ||||
-rw-r--r-- | src/match_glob.c | 6 | ||||
-rw-r--r-- | src/match_pcre.c | 6 | ||||
-rw-r--r-- | src/match_regex.c | 6 | ||||
-rw-r--r-- | src/pid_config.c | 6 | ||||
-rw-r--r-- | src/pid_file.c | 6 | ||||
-rw-r--r-- | src/pid_grep.c | 6 | ||||
-rw-r--r-- | src/pid_proc.c | 6 | ||||
-rw-r--r-- | src/pid_ps.c | 6 | ||||
-rw-r--r-- | src/pidfrom.c | 6 | ||||
-rw-r--r-- | src/pidlist.c | 6 | ||||
-rw-r--r-- | src/procscan.c | 6 | ||||
-rw-r--r-- | src/sentinel.c | 6 |
23 files changed, 436 insertions, 1 deletions
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 @@ -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 --- /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> |