Introduced rpm packages building tools.

This commit is contained in:
Andrei Belov
2017-10-19 18:23:31 +03:00
parent c8a8a7c212
commit eabe25d98e
21 changed files with 932 additions and 1 deletions

View File

@@ -0,0 +1,20 @@
package main
import (
"fmt"
"net/http"
"unit"
)
func handler(w http.ResponseWriter, r *http.Request) {
w.Header().Add("Content-Type", "text/plain");
fmt.Fprintf(w, "Method : %s\n", r.Method)
fmt.Fprintf(w, "URL : %s\n", r.URL.Path)
fmt.Fprintf(w, "Host : %s\n", r.Host)
}
func main() {
http.HandleFunc("/", handler)
unit.ListenAndServe("8000", nil)
}

View File

@@ -0,0 +1,15 @@
{
"applications": {
"example_go": {
"type": "go",
"user": "nobody",
"executable": "/tmp/go-app"
}
},
"listeners": {
"*:8500": {
"application": "example_go"
}
}
}

View File

@@ -0,0 +1 @@
<?php phpinfo(); ?>

View File

@@ -0,0 +1,17 @@
{
"applications": {
"example_php": {
"type": "php",
"user": "nobody",
"workers": 2,
"root": "/usr/share/doc/unit-php/examples/phpinfo-app",
"index": "index.php"
}
},
"listeners": {
"*:8300": {
"application": "example_php"
}
}
}

View File

@@ -0,0 +1,16 @@
import os
import datetime
import sys
def application(environ, start_response):
output = datetime.datetime.now().strftime("%Y-%m-%d %I:%M:%S %p")
output += "\n\nPython: "
output += sys.version
output += "\n\nENV Variables:\n\n"
for param in os.environ.keys():
output += param
output += "\t"
output += os.environ[param]
output += "\n"
start_response('200 OK', [('Content-type', 'text/plain')])
return output.encode('utf8')

View File

@@ -0,0 +1,17 @@
{
"applications": {
"example_python": {
"type": "python",
"user": "nobody",
"workers": 2,
"path": "/usr/share/doc/unit-python/examples/python-app",
"module": "wsgi"
}
},
"listeners": {
"*:8400": {
"application": "example_python"
}
}
}

View File

@@ -0,0 +1,39 @@
{
"applications": {
"example_php": {
"type": "php",
"user": "nobody",
"workers": 2,
"root": "/usr/share/doc/unit-php/examples/phpinfo-app",
"index": "index.php"
},
"example_python": {
"type": "python",
"user": "nobody",
"workers": 2,
"path": "/usr/share/doc/unit-python/examples/python-app",
"module": "wsgi"
},
"example_go": {
"type": "go",
"user": "nobody",
"executable": "/tmp/go-app"
}
},
"listeners": {
"*:8300": {
"application": "example_php"
},
"*:8400": {
"application": "example_python"
},
"*:8500": {
"application": "example_go"
}
}
}

View File

@@ -0,0 +1,116 @@
#!/bin/sh
#
# unitd NGINX Unit
#
# chkconfig: - 86 14
# description: NGINX Unit
### BEGIN INIT INFO
# Provides: unitd
# Required-Start: $local_fs $network $named $syslog
# Required-Stop: $local_fs $network $named $syslog
# Default-Start:
# Default-Stop: 0 1 2 3 4 5 6
# Short-Description: NGINX Unit
# Description: NGINX Unit
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
exec="/usr/sbin/unitd"
prog="unitd"
config="/etc/unit/unit.conf"
if [ -n "$2" ]; then
config=$2
fi
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
lockfile=/var/lock/subsys/$prog
start() {
[ -x $exec ] || exit 5
echo -n $"Starting $prog: "
daemon $exec $UNITD_OPTIONS
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
stop
start
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status &>/dev/null
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart)
$1
;;
reload|force-reload)
echo "Not implemented." >&2
exit 1
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
restart
;;
saveconfig)
curl -sS --unix-socket /var/run/control.unit.sock localhost >${config}.new
if [ $? -ne 0 ]; then
echo "Could not retreive configuration" >&2
rm -f ${config}.new
exit 1
fi
mv ${config}.new ${config}
echo "The following configuration has been saved to ${config}:"
cat ${config}
;;
loadconfig)
if [ ! -e ${config} ]; then
echo "Could not find ${config} for loading" >&2
exit 1
fi
echo "Loading configuration from ${config}..."
curl -sS -X PUT --data-binary @${config} --unix-socket /var/run/control.unit.sock localhost
if [ $? -ne 0 ]; then
echo "Loading failed!" >&2
exit 1
fi
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|saveconfig|loadconfig}"
exit 2
esac
exit $?

View File

@@ -0,0 +1,25 @@
#!/bin/sh
#
# Legacy action script for "service unit loadconfig"
CONFIG=/etc/unit/config
if [ -n "$1" ] ; then
CONFIG=$1
fi
if [ ! -e ${CONFIG} ]; then
echo "Could not find ${CONFIG} for loading" >&2
exit 1
fi
echo "Loading configuration from ${CONFIG}..."
curl -sS -X PUT --data-binary @${CONFIG} --unix-socket /var/run/control.unit.sock localhost
if [ $? -ne 0 ]; then
echo "Loading failed!" >&2
exit 1
fi
exit 0

View File

@@ -0,0 +1,24 @@
#!/bin/sh
#
# Legacy action script for "service unit saveconfig"
CONFIG=/etc/unit/config
if [ -n "$1" ] ; then
CONFIG=$1
fi
curl -sS --unix-socket /var/run/control.unit.sock localhost >${CONFIG}.new
if [ $? -ne 0 ]; then
echo "Could not retreive configuration" >&2
rm -f ${CONFIG}.new
exit 1
fi
mv ${CONFIG}.new ${CONFIG}
echo "The following configuration has been saved to ${CONFIG}:"
cat ${CONFIG}
exit 0

View File

@@ -0,0 +1,14 @@
[Unit]
Description=NGINX Unit
Wants=network-online.target
After=network-online.target
[Service]
Type=forking
PIDFile=/run/unit.pid
EnvironmentFile=-/etc/sysconfig/unitd
ExecStart=/usr/sbin/unitd $UNITD_OPTIONS
ExecReload=
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1 @@
UNITD_OPTIONS="--log /var/log/unitd.log --pid /run/unitd.pid"