summaryrefslogtreecommitdiffstats
path: root/base/daemon.sh
diff options
context:
space:
mode:
authorroot <root@andjedan.(none)>2011-07-18 01:16:30 +0430
committerroot <root@andjedan.(none)>2011-07-17 13:46:30 -0700
commit1502051f4ac6929fb3d85027b368923134c767ff (patch)
treef801f1124912d36c7e0faccb5fd1bcc48c930877 /base/daemon.sh
downloadhellijudge-legacy.git-1502051f4ac6929fb3d85027b368923134c767ff.tar.gz
hellijudge-legacy.git-1502051f4ac6929fb3d85027b368923134c767ff.tar.xz
hellijudge-legacy.git-1502051f4ac6929fb3d85027b368923134c767ff.zip
Initial commitv0.7
Diffstat (limited to 'base/daemon.sh')
-rw-r--r--base/daemon.sh84
1 files changed, 84 insertions, 0 deletions
diff --git a/base/daemon.sh b/base/daemon.sh
new file mode 100644
index 0000000..de75186
--- /dev/null
+++ b/base/daemon.sh
@@ -0,0 +1,84 @@
+#!/bin/sh
+#
+# daemon.sh
+# Copyright (C) 2011 Hamed Saleh and Mahrud Sayrafi
+
+# This program 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 of the License, or
+# (at your option) any later version.
+
+# This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
+
+PID=$$
+LOCK="/var/run/judge.pid"
+
+echo $PID >$LOCK
+echo "Judge daemon started ... pid=$PID" >&2
+
+export CHROOT=`which chroot`
+export SU=`which su`
+export TIME=`which time`
+export TIMEOUT=`which timeout`
+
+export JUDGE='/judge'
+
+export BASE="$JUDGE/base"
+export INIT="$BASE/init.sh"
+export CORE="$BASE/core.py"
+export LOGGER="$BASE/log.sh"
+export JAILER="$BASE/jail.sh"
+export COMPILER="$BASE/compile.sh"
+
+export LOG_DIR="$JUDGE/log"
+
+export JAIL="$JUDGE/jail"
+export SU_SYNTAX="--session-command"
+
+export PROBLEMS_DIR="$JUDGE/problems"
+
+export COMPILER_DIR="/bin/compilers"
+export CODE_DIR='/source' # FIXME
+export BIN_USER=0
+export BIN_GROUP=0
+export COMPILE_TIME=10 # FIXME
+
+export RUN_DIR='/home' # FIXME
+export RUN_USER='judge' # FIXME
+export RUN_GROUP=99
+
+export LOG_DIR="$JUDGE/log"
+export LOG_DATE_FORMAT="--rfc-3339=ns"
+
+export TIME_FORMAT='%e %M %x'
+
+export DB_HOST='127.0.0.1'
+export DB_USERNAME=''
+export DB_PASSWORD=''
+export DB_NAME=''
+
+PORT=31415
+FIFO="/tmp/fifo$PID"
+
+rm -f /tmp/fifo*
+mkfifo $FIFO
+
+trap "{ killall -9 nc init.sh daemon.sh
+ rm -f $FIFO $LOCK; }" EXIT
+
+while true
+do
+{
+ echo .
+ sh $INIT < $FIFO &
+ nc -l $PORT > $FIFO
+}
+done
+
+rm -f $FIFO $LOCK