Automatically notify systemd if compiled
This commit is contained in:
parent
a66e5cd286
commit
104ab83f09
@ -27,6 +27,10 @@ to run the programs. The scripts are meant to be run from examples/ sub-director
|
||||
$ cd examples
|
||||
$ ./scripts/secure_relay.sh
|
||||
|
||||
SYSTEMD
|
||||
|
||||
If the systemd development library is available, then it will notify systemd about the server status.
|
||||
|
||||
RUNNING THE TURN SERVER
|
||||
|
||||
Options note: turnserver has long and short option names, for most options.
|
||||
@ -158,8 +162,6 @@ Flags:
|
||||
|
||||
-o, --daemon Run server as daemon.
|
||||
|
||||
--systemd Notify systemd about server status. (Use only in foreground!)
|
||||
|
||||
--no-software-attribute Production mode: hide the software version.
|
||||
|
||||
-f, --fingerprint Use fingerprints in the TURN messages. If an incoming request
|
||||
|
||||
@ -11,7 +11,7 @@ User=turnserver
|
||||
Group=turnserver
|
||||
Type=notify
|
||||
RuntimeDirectory=turnserver
|
||||
ExecStart=/usr/bin/turnserver --systemd -c /etc/turnserver.conf
|
||||
ExecStart=/usr/bin/turnserver -c /etc/turnserver.conf
|
||||
Restart=on-failure
|
||||
InaccessibleDirectories=/home
|
||||
PrivateTmp=yes
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
.\" Text automatically generated by txt2man
|
||||
.TH TURN 1 "08 January 2021" "" ""
|
||||
.TH TURN 1 "10 January 2021" "" ""
|
||||
.SH GENERAL INFORMATION
|
||||
|
||||
\fIturnadmin\fP is a TURN administration tool. This tool can be used to manage
|
||||
@ -48,8 +48,8 @@ is equivalent to:
|
||||
.fi
|
||||
You have always the use the \fB\-r\fP <realm> option with commands for long term credentials \-
|
||||
because data for multiple realms can be stored in the same database.
|
||||
.PP
|
||||
=====================================
|
||||
.SH =====================================
|
||||
|
||||
.SS NAME
|
||||
\fB
|
||||
\fBturnadmin \fP\- a TURN relay administration tool.
|
||||
@ -288,8 +288,8 @@ $ \fIturnadmin\fP \fB\-\-file\-key\-path\fP <key\-file> \fB\-v\fP <encrypted>
|
||||
Help:
|
||||
.PP
|
||||
$ \fIturnadmin\fP \fB\-h\fP
|
||||
.PP
|
||||
=======================================
|
||||
.SH =======================================
|
||||
|
||||
.SS DOCS
|
||||
|
||||
After installation, run the \fIcommand\fP:
|
||||
@ -301,8 +301,8 @@ or in the project root directory:
|
||||
$ man \fB\-M\fP man \fIturnadmin\fP
|
||||
.PP
|
||||
to see the man page.
|
||||
.PP
|
||||
=====================================
|
||||
.SH =====================================
|
||||
|
||||
.SS FILES
|
||||
|
||||
/etc/turnserver.conf
|
||||
@ -314,8 +314,8 @@ to see the man page.
|
||||
/var/lib/turn/turndb
|
||||
.PP
|
||||
/usr/local/etc/turnserver.conf
|
||||
.PP
|
||||
=====================================
|
||||
.SH =====================================
|
||||
|
||||
.SS DIRECTORIES
|
||||
|
||||
/usr/local/share/\fIturnserver\fP
|
||||
@ -323,14 +323,13 @@ to see the man page.
|
||||
/usr/local/share/doc/\fIturnserver\fP
|
||||
.PP
|
||||
/usr/local/share/examples/\fIturnserver\fP
|
||||
.PP
|
||||
======================================
|
||||
.SH ======================================
|
||||
|
||||
.SS SEE ALSO
|
||||
|
||||
\fIturnserver\fP, \fIturnutils\fP
|
||||
.RE
|
||||
.PP
|
||||
======================================
|
||||
.SH ======================================
|
||||
|
||||
.SS WEB RESOURCES
|
||||
|
||||
project page:
|
||||
@ -344,9 +343,8 @@ https://github.com/coturn/coturn/wiki
|
||||
forum:
|
||||
.PP
|
||||
https://groups.google.com/forum/?fromgroups=#!forum/turn\-server\-project\-rfc5766\-turn\-server/
|
||||
.RE
|
||||
.PP
|
||||
======================================
|
||||
.SH ======================================
|
||||
|
||||
.SS AUTHORS
|
||||
|
||||
Oleg Moskalenko <mom040267@gmail.com>
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
.\" Text automatically generated by txt2man
|
||||
.TH TURN 1 "08 January 2021" "" ""
|
||||
.TH TURN 1 "10 January 2021" "" ""
|
||||
.SH GENERAL INFORMATION
|
||||
|
||||
The \fBTURN Server\fP project contains the source code of a TURN server and TURN client
|
||||
@ -40,6 +40,9 @@ to run the programs. The scripts are meant to be run from examples/ sub\-directo
|
||||
.PP
|
||||
$ cd examples
|
||||
$ ./scripts/secure_relay.sh
|
||||
.SH SYSTEMD
|
||||
|
||||
If the systemd development library is available, then it will notify systemd about the server status.
|
||||
.SH RUNNING THE TURN SERVER
|
||||
|
||||
Options note: \fIturnserver\fP has long and short option names, for most options.
|
||||
@ -78,7 +81,8 @@ is equivalent to:
|
||||
|
||||
.fam T
|
||||
.fi
|
||||
=====================================
|
||||
.SH =====================================
|
||||
|
||||
.SS NAME
|
||||
\fB
|
||||
\fBturnserver \fP\- a TURN relay server implementation.
|
||||
@ -230,10 +234,6 @@ Extra verbose mode, very annoying and not recommended.
|
||||
.B
|
||||
\fB\-o\fP, \fB\-\-daemon\fP
|
||||
Run server as daemon.
|
||||
.TP
|
||||
.B
|
||||
\fB\-\-systemd\fP
|
||||
Notify systemd about server status. (Use only in foreground!)
|
||||
.PP
|
||||
\fB\-\-no\-software\-attribute\fP Production mode: hide the software version.
|
||||
.TP
|
||||
@ -864,15 +864,15 @@ By default it is disabled for security resons!
|
||||
.B
|
||||
\fB\-\-ne\fP=[1|2|3]
|
||||
Set network engine type for the process (for internal purposes).
|
||||
.PP
|
||||
==================================
|
||||
.SH ==================================
|
||||
|
||||
.SH LOAD BALANCE AND PERFORMANCE TUNING
|
||||
|
||||
This topic is covered in the wiki page:
|
||||
.PP
|
||||
https://github.com/coturn/coturn/wiki/turn_performance_and_load_balance
|
||||
.PP
|
||||
===================================
|
||||
.SH ===================================
|
||||
|
||||
.SH WEBRTC USAGE
|
||||
|
||||
This is a set of notes for the WebRTC users:
|
||||
@ -909,8 +909,8 @@ Usually WebRTC uses fingerprinting (\fB\-f\fP).
|
||||
.IP 5) 4
|
||||
\fB\-\-min\-port\fP and \fB\-\-max\-port\fP may be needed if you want to limit the relay endpoints ports
|
||||
number range.
|
||||
.PP
|
||||
===================================
|
||||
.SH ===================================
|
||||
|
||||
.SH TURN REST API
|
||||
|
||||
In WebRTC, the browser obtains the TURN connection information from the web
|
||||
@ -1048,8 +1048,8 @@ examples/scripts/restapi/shared_secret_maintainer.pl .
|
||||
.PP
|
||||
A very important thing is that the nonce must be totally random and it must be
|
||||
different for different clients and different sessions.
|
||||
.PP
|
||||
===================================
|
||||
.SH ===================================
|
||||
|
||||
.SH DATABASES
|
||||
|
||||
For the user database, the \fIturnserver\fP has the following \fIoptions\fP:
|
||||
@ -1112,8 +1112,8 @@ it will set the users for you (see the \fIturnadmin\fP manuals). If you are usin
|
||||
\fIturnserver\fP or \fIturnadmin\fP will initialize the empty database, for you, when started. The
|
||||
TURN server installation process creates an empty initialized SQLite database in the default
|
||||
location (/var/db/turndb or /usr/local/var/db/turndb or /var/lib/turn/turndb, depending on the system).
|
||||
.PP
|
||||
=================================
|
||||
.SH =================================
|
||||
|
||||
.SH ALPN
|
||||
|
||||
The server supports ALPNs "stun.turn" and "stun.nat\-discovery", when
|
||||
@ -1122,16 +1122,16 @@ ClientHello message that contains one or both of those ALPNs, then the
|
||||
server chooses the first stun.* label and sends it back (in the ServerHello)
|
||||
in the ALPN extension field. If no stun.* label is found, then the server
|
||||
does not include the ALPN information into the ServerHello.
|
||||
.PP
|
||||
=================================
|
||||
.SH =================================
|
||||
|
||||
.SH LIBRARIES
|
||||
|
||||
In the lib/ sub\-directory the build process will create TURN client messaging library.
|
||||
In the include/ sub\-directory, the necessary include files will be placed.
|
||||
The C++ wrapper for the messaging functionality is located in TurnMsgLib.h header.
|
||||
An example of C++ code can be found in stunclient.c file.
|
||||
.PP
|
||||
=================================
|
||||
.SH =================================
|
||||
|
||||
.SH DOCS
|
||||
|
||||
After installation, run the command:
|
||||
@ -1146,8 +1146,8 @@ to see the man page.
|
||||
.PP
|
||||
In the docs/html subdirectory of the original archive tree, you will find the client library
|
||||
reference. After the installation, it will be placed in PREFIX/share/doc/\fIturnserver\fP/html.
|
||||
.PP
|
||||
=================================
|
||||
.SH =================================
|
||||
|
||||
.SH LOGS
|
||||
|
||||
When the \fBTURN Server\fP starts, it makes efforts to create a log file turn_<pid>.log
|
||||
@ -1170,8 +1170,8 @@ log messages are sent only to the standard output of the process.
|
||||
.PP
|
||||
This behavior can be controlled by \fB\-\-log\-file\fP, \fB\-\-syslog\fP and \fB\-\-no\-stdout\-log\fP
|
||||
\fIoptions\fP.
|
||||
.PP
|
||||
=================================
|
||||
.SH =================================
|
||||
|
||||
.SH HTTPS MANAGEMENT INTERFACE
|
||||
|
||||
The \fIturnserver\fP process provides an HTTPS Web access as statistics and basic
|
||||
@ -1184,8 +1184,8 @@ populated with the admin user \fBaccount\fP(s). An admin user can be a superuser
|
||||
(if not assigned to a particular realm) or a restricted user (if assigned to
|
||||
a realm). The restricted admin users can perform only limited actions, within
|
||||
their corresponding realms.
|
||||
.PP
|
||||
=================================
|
||||
.SH =================================
|
||||
|
||||
.SH TELNET CLI
|
||||
|
||||
The \fIturnserver\fP process provides a telnet CLI access as statistics and basic management
|
||||
@ -1193,8 +1193,8 @@ interface. By default, the \fIturnserver\fP starts a telnet CLI listener on IP 1
|
||||
port 5766. That can be changed by the command\-cline \fIoptions\fP of the \fIturnserver\fP process
|
||||
(see \fB\-\-cli\-ip\fP and \fB\-\-cli\-port\fP \fIoptions\fP). The full list of telnet CLI commands is provided
|
||||
in "help" command output in the telnet CLI.
|
||||
.PP
|
||||
=================================
|
||||
.SH =================================
|
||||
|
||||
.SH CLUSTERS
|
||||
|
||||
\fBTURN Server\fP can be a part of the cluster installation. But, to support the "even port" functionality
|
||||
@ -1203,8 +1203,8 @@ in "help" command output in the telnet CLI.
|
||||
the RTP and RTCP relaying endpoints must be allocated on the same relay IP. It would be possible
|
||||
to design a scheme with the application\-level requests forwarding (and we may do that later) but
|
||||
it would affect the performance.
|
||||
.PP
|
||||
=================================
|
||||
.SH =================================
|
||||
|
||||
.SH FILES
|
||||
|
||||
/etc/turnserver.conf
|
||||
@ -1216,8 +1216,8 @@ it would affect the performance.
|
||||
/var/lib/turn/turndb
|
||||
.PP
|
||||
/usr/local/etc/turnserver.conf
|
||||
.PP
|
||||
=================================
|
||||
.SH =================================
|
||||
|
||||
.SH DIRECTORIES
|
||||
|
||||
/usr/local/share/\fIturnserver\fP
|
||||
@ -1225,16 +1225,15 @@ it would affect the performance.
|
||||
/usr/local/share/doc/\fIturnserver\fP
|
||||
.PP
|
||||
/usr/local/share/examples/\fIturnserver\fP
|
||||
.PP
|
||||
=================================
|
||||
.SH =================================
|
||||
|
||||
.SH STANDARDS
|
||||
|
||||
obsolete STUN RFC 3489
|
||||
.PP
|
||||
new STUN RFC 5389
|
||||
.PP
|
||||
TURN RFC 5766
|
||||
.PP
|
||||
.SH TURN RFC 5766
|
||||
|
||||
TURN\-TCP extension RFC 6062
|
||||
.PP
|
||||
TURN IPv6 extension RFC 6156
|
||||
@ -1242,14 +1241,13 @@ TURN IPv6 extension RFC 6156
|
||||
STUN/TURN test vectors RFC 5769
|
||||
.PP
|
||||
STUN NAT behavior discovery RFC 5780
|
||||
.PP
|
||||
=================================
|
||||
.SH =================================
|
||||
|
||||
.SH SEE ALSO
|
||||
|
||||
\fIturnadmin\fP, \fIturnutils\fP
|
||||
.RE
|
||||
.PP
|
||||
======================================
|
||||
.SH ======================================
|
||||
|
||||
.SS WEB RESOURCES
|
||||
|
||||
project page:
|
||||
@ -1263,8 +1261,8 @@ https://github.com/coturn/coturn/wiki
|
||||
forum:
|
||||
.PP
|
||||
https://groups.google.com/forum/?fromgroups=#!forum/turn\-server\-project\-rfc5766\-turn\-server
|
||||
.PP
|
||||
======================================
|
||||
.SH ======================================
|
||||
|
||||
.SS AUTHORS
|
||||
|
||||
Oleg Moskalenko <mom040267@gmail.com>
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
.\" Text automatically generated by txt2man
|
||||
.TH TURN 1 "08 January 2021" "" ""
|
||||
.TH TURN 1 "10 January 2021" "" ""
|
||||
.SH GENERAL INFORMATION
|
||||
|
||||
A set of turnutils_* programs provides some utility functionality to be used
|
||||
@ -63,8 +63,8 @@ script in examples/scripts/oauth.sh.
|
||||
.RE
|
||||
.PP
|
||||
|
||||
.RS
|
||||
=====================================
|
||||
.SH =====================================
|
||||
|
||||
.SS NAME
|
||||
\fB
|
||||
\fBturnutils_uclient \fP\- this client emulation application is supplied for the test purposes only.
|
||||
@ -276,8 +276,8 @@ the ORIGIN STUN attribute value.
|
||||
Bandwidth for the bandwidth request in ALLOCATE. The default value is zero.
|
||||
.PP
|
||||
See the examples in the "examples/scripts" directory.
|
||||
.PP
|
||||
======================================
|
||||
.SH ======================================
|
||||
|
||||
.SS NAME
|
||||
\fB
|
||||
\fBturnutils_peer \fP\- a simple UDP\-only echo backend server.
|
||||
@ -314,8 +314,8 @@ If no listener \fBaddress\fP(es) defined, then it listens on all IPv4 and IPv6 a
|
||||
.B
|
||||
\fB\-v\fP
|
||||
Verbose
|
||||
.PP
|
||||
========================================
|
||||
.SH ========================================
|
||||
|
||||
.SS NAME
|
||||
\fB
|
||||
\fBturnutils_stunclient \fP\- a basic STUN client.
|
||||
@ -354,8 +354,8 @@ and if it finds that the STUN server supports RFC 5780
|
||||
requests with different parameters, to demonstrate the NAT discovery capabilities.
|
||||
.PP
|
||||
This utility does not support the "old" "classic" STUN protocol (RFC 3489).
|
||||
.PP
|
||||
=====================================
|
||||
.SH =====================================
|
||||
|
||||
.SS NAME
|
||||
\fB
|
||||
\fBturnutils_rfc5769check \fP\- a utility that tests the correctness of STUN protocol implementation.
|
||||
@ -380,8 +380,8 @@ check procedure, it is not copied to the installation destination.
|
||||
Usage:
|
||||
.PP
|
||||
$ \fIturnutils_rfc5769check\fP
|
||||
.PP
|
||||
=====================================
|
||||
.SH =====================================
|
||||
|
||||
.SS NAME
|
||||
\fB
|
||||
\fBturnutils_natdiscovery \fP\- a utility that discovers NAT mapping and filtering
|
||||
@ -462,8 +462,8 @@ Used by mapping lifetime behavior discovery
|
||||
Usage:
|
||||
.PP
|
||||
$ \fIturnutils_natdiscovery\fP \fB\-m\fP \fB\-f\fP stun.example.com
|
||||
.PP
|
||||
=====================================
|
||||
.SH =====================================
|
||||
|
||||
.SS NAME
|
||||
\fB
|
||||
\fBturnutils_oauth \fP\- a utility that helps OAuth access_token generation/encryption and validation/decyption
|
||||
@ -568,8 +568,8 @@ stun client hmac algorithm
|
||||
Usage:
|
||||
.PP
|
||||
$ \fIturnutils_natdiscovery\fP
|
||||
.PP
|
||||
===================================
|
||||
.SH ===================================
|
||||
|
||||
.SH DOCS
|
||||
|
||||
After installation, run the command:
|
||||
@ -581,8 +581,8 @@ or in the project root directory:
|
||||
$ man \fB\-M\fP man \fIturnutils\fP
|
||||
.PP
|
||||
to see the man page.
|
||||
.PP
|
||||
=====================================
|
||||
.SH =====================================
|
||||
|
||||
.SH FILES
|
||||
|
||||
/etc/turnserver.conf
|
||||
@ -594,8 +594,8 @@ to see the man page.
|
||||
/var/lib/turn/turndb
|
||||
.PP
|
||||
/usr/local/etc/turnserver.conf
|
||||
.PP
|
||||
=================================
|
||||
.SH =================================
|
||||
|
||||
.SH DIRECTORIES
|
||||
|
||||
/usr/local/share/\fIturnserver\fP
|
||||
@ -603,14 +603,13 @@ to see the man page.
|
||||
/usr/local/share/doc/\fIturnserver\fP
|
||||
.PP
|
||||
/usr/local/share/examples/\fIturnserver\fP
|
||||
.PP
|
||||
===================================
|
||||
.SH ===================================
|
||||
|
||||
.SH STANDARDS
|
||||
|
||||
new STUN RFC 5389
|
||||
.PP
|
||||
TURN RFC 5766
|
||||
.PP
|
||||
.SH TURN RFC 5766
|
||||
|
||||
TURN\-TCP extension RFC 6062
|
||||
.PP
|
||||
TURN IPv6 extension RFC 6156
|
||||
@ -618,14 +617,13 @@ TURN IPv6 extension RFC 6156
|
||||
STUN/TURN test vectors RFC 5769
|
||||
.PP
|
||||
STUN NAT behavior discovery RFC 5780
|
||||
.PP
|
||||
====================================
|
||||
.SH ====================================
|
||||
|
||||
.SH SEE ALSO
|
||||
|
||||
\fIturnserver\fP, \fIturnadmin\fP
|
||||
.RE
|
||||
.PP
|
||||
======================================
|
||||
.SH ======================================
|
||||
|
||||
.SS WEB RESOURCES
|
||||
|
||||
project page:
|
||||
@ -639,9 +637,8 @@ https://github.com/coturn/coturn/wiki
|
||||
forum:
|
||||
.PP
|
||||
https://groups.google.com/forum/?fromgroups=#!forum/turn\-server\-project\-rfc5766\-turn\-server/
|
||||
.RE
|
||||
.PP
|
||||
======================================
|
||||
.SH ======================================
|
||||
|
||||
.SS AUTHORS
|
||||
|
||||
Oleg Moskalenko <mom040267@gmail.com>
|
||||
|
||||
@ -8,7 +8,7 @@ User=turnserver
|
||||
Group=turnserver
|
||||
Type=notify
|
||||
EnvironmentFile=/etc/sysconfig/turnserver
|
||||
ExecStart=/usr/bin/turnserver --systemd -c /etc/turnserver/turnserver.conf $EXTRA_OPTIONS
|
||||
ExecStart=/usr/bin/turnserver -c /etc/turnserver/turnserver.conf $EXTRA_OPTIONS
|
||||
ExecStopPost=/usr/bin/rm -f /var/run/turnserver/turnserver.pid
|
||||
Restart=on-abort
|
||||
|
||||
|
||||
@ -170,8 +170,7 @@ DEFAULT_CPUS_NUMBER,
|
||||
0, /* no_dynamic_ip_list */
|
||||
0, /* no_dynamic_realms */
|
||||
|
||||
0, /* log_binding */
|
||||
0 /* systemd */
|
||||
0 /* log_binding */
|
||||
};
|
||||
|
||||
//////////////// OpenSSL Init //////////////////////
|
||||
@ -464,7 +463,6 @@ static char Usage[] = "Usage: turnserver [options]\n"
|
||||
" -v, --verbose 'Moderate' verbose mode.\n"
|
||||
" -V, --Verbose Extra verbose mode, very annoying (for debug purposes only).\n"
|
||||
" -o, --daemon Start process as daemon (detach from current shell).\n"
|
||||
" --systemd Notify systemd about server status. (Use only in foreground!)\n"
|
||||
" --no-software-attribute Production mode: hide the software version (formerly --prod).\n"
|
||||
" -f, --fingerprint Use fingerprints in the TURN messages.\n"
|
||||
" -a, --lt-cred-mech Use the long-term credential mechanism.\n"
|
||||
@ -815,8 +813,7 @@ enum EXTRA_OPTS {
|
||||
NO_HTTP_OPT,
|
||||
SECRET_KEY_OPT,
|
||||
ACME_REDIRECT_OPT,
|
||||
LOG_BINDING_OPT,
|
||||
SYSTEMD_OPT
|
||||
LOG_BINDING_OPT
|
||||
};
|
||||
|
||||
struct myoption {
|
||||
@ -952,7 +949,6 @@ static const struct myoption long_options[] = {
|
||||
{ "keep-address-family", optional_argument, NULL, 'K' },
|
||||
{ "acme-redirect", required_argument, NULL, ACME_REDIRECT_OPT },
|
||||
{ "log-binding", optional_argument, NULL, LOG_BINDING_OPT },
|
||||
{ "systemd", optional_argument, NULL, SYSTEMD_OPT },
|
||||
|
||||
{ NULL, no_argument, NULL, 0 }
|
||||
};
|
||||
@ -1610,9 +1606,6 @@ static void set_option(int c, char *value)
|
||||
case LOG_BINDING_OPT:
|
||||
turn_params.log_binding = get_bool_value(value);
|
||||
break;
|
||||
case SYSTEMD_OPT:
|
||||
turn_params.systemd = get_bool_value(value);
|
||||
break;
|
||||
|
||||
/* these options have been already taken care of before: */
|
||||
case 'l':
|
||||
|
||||
@ -338,9 +338,6 @@ typedef struct _turn_params_ {
|
||||
int no_dynamic_realms;
|
||||
|
||||
vint log_binding;
|
||||
|
||||
vint systemd;
|
||||
|
||||
} turn_params_t;
|
||||
|
||||
extern turn_params_t turn_params;
|
||||
|
||||
@ -1591,7 +1591,6 @@ void run_listener_server(struct listener_server *ls)
|
||||
while (!turn_params.stop_turn_server) {
|
||||
|
||||
#if !defined(TURN_NO_SYSTEMD)
|
||||
if(turn_params.systemd)
|
||||
sd_notify (0, "READY=1");
|
||||
#endif
|
||||
|
||||
@ -1607,7 +1606,6 @@ void run_listener_server(struct listener_server *ls)
|
||||
}
|
||||
|
||||
#if !defined(TURN_NO_SYSTEMD)
|
||||
if(turn_params.systemd)
|
||||
sd_notify (0, "STOPPING=1");
|
||||
#endif
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user