-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNetBSD
More file actions
118 lines (102 loc) · 3.37 KB
/
Copy pathNetBSD
File metadata and controls
118 lines (102 loc) · 3.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#!/bin/sh
#
# WebKit application server
# part of Webware for Python
# www.webwareforpython.org
#
# /etc/init.d/webkit
#
# init.d script for NetBSD and FreeBSD
#
# PROVIDE: webkit
# REQUIRE: LOGIN
### START LOCAL CONFIGURATION
# If you store this script in your Webware working directory
# and create a symlink to it as /etc/init.d/webkit_appname,
# it will try to guess your configuration parameters. Otherwise
# you need to hard code the path to the working directory here.
# You can make changes either directly here in the start script or
# you can also override the configuration in the Launch.py script.
# The location and name of the start sript:
START_SCRIPT="$0"
APP_NAME=`basename "$START_SCRIPT"`
if [ -h "$START_SCRIPT" ]; then
START_SCRIPT=`readlink -f "$START_SCRIPT"`
fi
# The location of the working directory:
WORK_DIR=`dirname "$START_SCRIPT"`
if [ "$WORK_DIR" = "/etc/init.d" ]; then
# Put hard coded path to working directory here:
WORK_DIR="."
fi
# Make sure to have the absolute path:
test -d "$WORK_DIR" || exit 5
WORK_DIR=`cd "$WORK_DIR" 2>/dev/null && pwd`
# The app server launch script:
APP_SERVER="$WORK_DIR/AppServer"
test -x "$APP_SERVER" || exit 5
# The app server configuration:
APP_SERVER_CONFIG="$WORK_DIR/Configs/AppServer.config"
test -f "$APP_SERVER_CONFIG" || exit 5
# The WebKit app server log file
# (you can set this in Launch.py as well):
#LOG_FILE="/var/log/$APP_NAME.log"
LOG_FILE="$WORK_DIR/Logs/webkit.log"
# Use this extension if you want to move the last log away
# (also consider using logrotate or something similar):
LOG_OLD=".old"
# The app server process id file
# (you can set this in Launch.py as well):
#PID_FILE="/var/run/$APP_NAME.pid"
PID_FILE="$WORK_DIR/webkit.pid"
# The user and group to run the app server
# (you can set this in Launch.py as well).
# If undefined, it will be the user and group
# running the start script (usually root).
# You should use a low-privilege account,
# like the work dir owner, wwwrun or nobody.
# This will use the owner of the AppServer script:
WEBWARE_USER=`stat -f "%Su" "$APP_SERVER"`
WEBWARE_GROUP=`stat -f "%Sg" "$APP_SERVER"`
# Unset the following variable if you want to store the
# pid and log files as the user running the start script
# (usually root) or set it if you want these files to be
# written after switching to WEBWARE_USER:WEBWARE_GROUP.
LAUNCH_AS_WEBWARE="yes"
# Additional options -u or -O to be passed on to Python:
PYTHONOPTS=
# Additional libraries to be included in the Python path:
PYTHONPATH=
export PYTHONPATH
### END LOCAL CONFIGURATION
# Source NetBSD function library:
. /etc/rc.subr
name="$APP_NAME"
command="$APP_SERVER"
procname="python"
pidfile="$PID_FILE"
if [ "$LAUNCH_AS_WEBWARE" ]; then
if [ "$WEBWARE_USER" ]; then
eval ${name}_user=$WEBWARE_USER
fi
if [ "$WEBWARE_GROUP" ]; then
eval ${name}_group=$WEBWARE_GROUP
fi
eval ${name}_flags=\"$PYTHONOPTS \
-d \\\"$WORK_DIR\\\" -o \\\"$LOG_FILE\\\" \
-i \\\"$PID_FILE\\\"\"
command_args="> /dev/null &"
else
if [ "$WEBWARE_USER" ]; then
WEBWARE_USER="-u $WEBWARE_USER"
fi
if [ "$WEBWARE_GROUP" ]; then
WEBWARE_GROUP="-g $WEBWARE_GROUP"
fi
eval ${name}_flags=\"$PYTHONOPTS \
-d \\\"$WORK_DIR\\\" -i \\\"$PID_FILE\\\" \
$WEBWARE_USER $WEBWARE_GROUP\"
command_args="> \"$LOG_FILE\" 2>&1 &"
fi
load_rc_config "$name"
run_rc_command "$1"