Running executors as runners

This commit is contained in:
ThreshMain 2021-01-16 06:46:04 +01:00
parent 9293cd271f
commit 8f2960e99a
No known key found for this signature in database
GPG key ID: 5FCE2316C19586E7
30 changed files with 66 additions and 92 deletions

View file

@ -48,7 +48,7 @@ lxc-attach --clear-env -n piston -- \
# runner # runner
timeout -s KILL 20 \ timeout -s KILL 20 \
lxc-attach --clear-env -n piston -- \ lxc-attach --clear-env -n piston -- \
/bin/bash -l -c "bash /exec/$lang $newinc $epoch" /bin/bash -l -c "runuser runner$newinc -c 'bash /exec/$lang $epoch'"
# process janitor # process janitor
lxc-attach --clear-env -n piston -- \ lxc-attach --clear-env -n piston -- \

View file

@ -1,4 +1,4 @@
cd /tmp/$2 cd /tmp/$1
timeout -s KILL 2 sed "/___code___/Q" code.code > code.stdin timeout -s KILL 2 sed "/___code___/Q" code.code > code.stdin
timeout -s KILL 2 sed "1,/___code___/d" code.code > code.awk timeout -s KILL 2 sed "1,/___code___/d" code.code > code.awk
runuser runner$1 -c "cd /tmp/$2 ; timeout -s KILL 3 awk -f code.awk < code.stdin" cd /tmp/$1 ; timeout -s KILL 3 awk -f code.awk < code.stdin

View file

@ -1,2 +1 @@
cd /tmp/$2 cd /tmp/$1 ; cat args.args | xargs -d '\n' timeout -s KILL 3 bash code.code
runuser runner$1 -c "cd /tmp/$2 ; cat args.args | xargs -d '\n' timeout -s KILL 3 bash code.code"

View file

@ -1,2 +1 @@
cd /tmp/$2 cd /tmp/$1 ; cat args.args | xargs -d '\n' timeout -s KILL 3 brainfuck code.code
runuser runner$1 -c "cd /tmp/$2 ; cat args.args | xargs -d '\n' timeout -s KILL 3 brainfuck code.code"

View file

@ -1,4 +1,3 @@
runuser runner$1 -c "\ cd /tmp/$1 ;
cd /tmp/$2 ; \ gcc -std=c11 -o binary -x c code.code ;
gcc -std=c11 -o binary -x c code.code ; \ cat args.args | xargs -d '\n' timeout -s KILL 3 ./binary
cat args.args | xargs -d '\n' timeout -s KILL 3 ./binary"

View file

@ -1,4 +1,3 @@
runuser runner$1 -c "\ cd /tmp/$1 ;
cd /tmp/$2 ; \ g++ -std=c++17 -o binary -x c++ code.code ;
g++ -std=c++17 -o binary -x c++ code.code ; \ cat args.args | xargs -d '\n' timeout -s KILL 3 ./binary
cat args.args | xargs -d '\n' timeout -s KILL 3 ./binary"

View file

@ -1,4 +1,3 @@
runuser runner$1 -c "\ cd /tmp/$1 ;
cd /tmp/$2 ; \ mcs $(echo code.code | sed 's/\///') -nowarn:0219 -out:binary ;
mcs $(echo code.code | sed 's/\///') -nowarn:0219 -out:binary ; \ cat args.args | xargs -d '\n' timeout -s KILL 3 mono binary
cat args.args | xargs -d '\n' timeout -s KILL 3 mono binary"

View file

@ -1,7 +1,7 @@
cd /tmp/$2 cd /tmp/$1
if [[ -z $(grep '[^[:space:]]' args.args) ]]; then if [[ -z $(grep '[^[:space:]]' args.args) ]]; then
runuser runner$1 -c "cd /tmp/$2 ; timeout -s KILL 3 deno run code.code" cd /tmp/$1 ; timeout -s KILL 3 deno run code.code
else else
runuser runner$1 -c "cd /tmp/$2 ; cat args.args | xargs -d '\n' timeout -s KILL 3 deno run code.code" cd /tmp/$1 ; cat args.args | xargs -d '\n' timeout -s KILL 3 deno run code.code
fi fi

View file

@ -1,7 +1,7 @@
cd /tmp/$2 cd /tmp/$1
if [[ -z $(grep '[^[:space:]]' args.args) ]]; then if [[ -z $(grep '[^[:space:]]' args.args) ]]; then
runuser runner$1 -c "cd /tmp/$2 ; timeout -s KILL 3 elixir code.code" cd /tmp/$1 ; timeout -s KILL 3 elixir code.code
else else
runuser runner$1 -c "cd /tmp/$2 ; cat args.args ; xargs -d '\n' timeout -s KILL 3 elixir code.code" cd /tmp/$1 ; cat args.args ; xargs -d '\n' timeout -s KILL 3 elixir code.code
fi fi

View file

@ -1,7 +1,7 @@
cd /tmp/$2 cd /tmp/$1
if [[ -z $(grep '[^[:space:]]' args.args) ]]; then if [[ -z $(grep '[^[:space:]]' args.args) ]]; then
runuser runner$1 -c "cd /tmp/$2 ; timeout -s KILL 3 emacs -Q --script code.code" cd /tmp/$1 ; timeout -s KILL 3 emacs -Q --script code.code
else else
runuser runner$1 -c "cd /tmp/$2 ; cat args.args | xargs -d '\n' timeout -s KILL 3 emacs -Q --script code.code" cd /tmp/$1 ; cat args.args | xargs -d '\n' timeout -s KILL 3 emacs -Q --script code.code
fi fi

View file

@ -1,6 +1,6 @@
cd /tmp/$2 cd /tmp/$1
cp code.code interim.go cp code.code interim.go
file="interim.go" file="interim.go"
go build $file go build $file
file=${file%%.*} file=${file%%.*}
runuser runner$1 -c "cd /tmp/$2 ; cat args.args | xargs -d '\n' timeout -s KILL 3 ./$file" cd /tmp/$1 ; cat args.args | xargs -d '\n' timeout -s KILL 3 ./$file

View file

@ -1,7 +1,4 @@
cd /tmp/$2 cd /tmp/$1
mv code.code code.hs mv code.code code.hs ;
ghc -dynamic -o binary code.hs > /dev/null 2>&1 ;
runuser runner$1 -c "\ cat args.args | xargs -d '\n' timeout -s KILL 3 ./binary
cd /tmp/$2 ; \
ghc -dynamic -o binary code.hs > /dev/null 2>&1 ; \
cat args.args | xargs -d '\n' timeout -s KILL 3 ./binary"

View file

@ -1,9 +1,8 @@
cd /tmp/$2 cd /tmp/$1
cp code.code interim.java cp code.code interim.java
name=$(grep -Po "(?<=\n|\A)\s*(public\s+)?(class|interface)\s+\K([^\/\\\n\s{]+)" interim.java) name=$(grep -Po "(?<=\n|\A)\s*(public\s+)?(class|interface)\s+\K([^\/\\\n\s{]+)" interim.java)
mv interim.java $name.java mv interim.java $name.java
runuser runner$1 -c "\ cd /tmp/$1 ;
cd /tmp/$2 ; \ javac $name.java ;
javac $name.java ; \ cat args.args | xargs -d '\n' timeout -s KILL 3 java $name
cat args.args | xargs -d '\n' timeout -s KILL 3 java $name"

View file

@ -1,2 +1 @@
cd /tmp/$2 cd /tmp/$1 ; cat args.args | xargs -d '\n' timeout -s KILL 3 jelly fu code.code
runuser runner$1 -c "cd /tmp/$2 ; cat args.args | xargs -d '\n' timeout -s KILL 3 jelly fu code.code"

View file

@ -1,2 +1 @@
cd /tmp/$2 cd /tmp/$1 ; cat args.args | xargs -d '\n' timeout -s KILL 3 julia code.code
runuser runner$1 -c "cd /tmp/$2 ; cat args.args | xargs -d '\n' timeout -s KILL 3 julia code.code"

View file

@ -1,6 +1,4 @@
cd /tmp/$2 cd /tmp/$1
cp code.code code.kt cp code.code code.kt
runuser runner$1 -c "\ kotlinc code.kt -include-runtime -d code.jar ;
cd /tmp/$2 ; \ cat args.args | xargs -d '\n' timeout -s KILL 3 java -jar code.jar
kotlinc code.kt -include-runtime -d code.jar ; \
cat args.args | xargs -d '\n' timeout -s KILL 3 java -jar code.jar"

View file

@ -1,2 +1 @@
cd /tmp/$2 cd /tmp/$1 ; cat args.args | xargs -d '\n' timeout -s KILL 3 lua code.code
runuser runner$1 -c "cd /tmp/$2 ; cat args.args | xargs -d '\n' timeout -s KILL 3 lua code.code"

View file

@ -1,5 +1,4 @@
runuser runner$1 -c "\ cd /tmp/$1 ;
cd /tmp/$2 ; \ nasm -f elf32 -o binary.o code.code ;
nasm -f elf32 -o binary.o code.code ; \ ld -m elf_i386 binary.o -o binary ;
ld -m elf_i386 binary.o -o binary ; \ cat args.args | xargs -d '\n' timeout -s KILL 3 ./binary
cat args.args | xargs -d '\n' timeout -s KILL 3 ./binary"

View file

@ -1,5 +1,4 @@
runuser runner$1 -c "\ cd /tmp/$1 ;
cd /tmp/$2 ; \ nasm -f elf64 -o binary.o code.code ;
nasm -f elf64 -o binary.o code.code ; \ ld -m elf_x86_64 binary.o -o binary ;
ld -m elf_x86_64 binary.o -o binary ; \ cat args.args | xargs -d '\n' timeout -s KILL 3 ./binary
cat args.args | xargs -d '\n' timeout -s KILL 3 ./binary"

View file

@ -1,7 +1,7 @@
cd /tmp/$2 cd /tmp/$1
if [[ -z $(grep '[^[:space:]]' args.args) ]]; then if [[ -z $(grep '[^[:space:]]' args.args) ]]; then
runuser runner$1 -c "cd /tmp/$2 ; timeout -s KILL 3 node code.code" cd /tmp/$1 ; timeout -s KILL 3 node code.code
else else
runuser runner$1 -c "cd /tmp/$2 ; cat args.args | xargs -d '\n' timeout -s KILL 3 node code.code" cd /tmp/$1 ; cat args.args | xargs -d '\n' timeout -s KILL 3 node code.code
fi fi

View file

@ -1,2 +1 @@
cd /tmp/$2 cd /tmp/$1 ; timeout -s KILL 3 python3 -m paradoc code.code <<< args.args
runuser runner$1 -c "cd /tmp/$2 ; timeout -s KILL 3 python3 -m paradoc code.code <<< args.args"

View file

@ -1,2 +1 @@
cd /tmp/$2 cd /tmp/$1 ; cat args.args | xargs -d '\n' timeout -s KILL 3 perl code.code
runuser runner$1 -c "cd /tmp/$2 ; cat args.args | xargs -d '\n' timeout -s KILL 3 perl code.code"

View file

@ -1,2 +1 @@
cd /tmp/$2 cd /tmp/$1 ; cat args.args | xargs -d '\n' timeout -s KILL 3 php code.code
runuser runner$1 -c "cd /tmp/$2 ; cat args.args | xargs -d '\n' timeout -s KILL 3 php code.code"

View file

@ -1,2 +1 @@
cd /tmp/$2 cd /tmp/$1 ; cat args.args | xargs -d '\n' timeout -s KILL 3 python code.code
runuser runner$1 -c "cd /tmp/$2 ; cat args.args | xargs -d '\n' timeout -s KILL 3 python code.code"

View file

@ -1,2 +1 @@
cd /tmp/$2 cd /tmp/$1 ; cat args.args | xargs -d '\n' timeout -s KILL 3 python3.8 code.code
runuser runner$1 -c "cd /tmp/$2 ; cat args.args | xargs -d '\n' timeout -s KILL 3 python3.8 code.code"

View file

@ -1,2 +1 @@
cd /tmp/$2 cd /tmp/$1 ; cat args.args | xargs -d '\n' timeout -s KILL 3 ruby code.code
runuser runner$1 -c "cd /tmp/$2 ; cat args.args | xargs -d '\n' timeout -s KILL 3 ruby code.code"

View file

@ -1,5 +1,3 @@
cd /tmp/$2 cd /tmp/$1
rustc -o binary code.code rustc -o binary code.code
runuser runner$1 -c "\ cat args.args | xargs -d '\n' timeout -s KILL 3 ./binary
cd /tmp/$2 ; \
cat args.args | xargs -d '\n' timeout -s KILL 3 ./binary"

View file

@ -1,2 +1 @@
cd /tmp/$2 cd /tmp/$1 ; cat args.args | xargs -d '\n' timeout -s KILL 3 swift code.code
runuser runner$1 -c "cd /tmp/$2 ; cat args.args | xargs -d '\n' timeout -s KILL 3 swift code.code"

View file

@ -1,7 +1,6 @@
runuser runner$1 -c "\ cd /tmp/$1 ;
cd /tmp/$2 ; \ mv code.code interim.ts ;
mv code.code interim.ts ; \ tsc interim.ts ;
tsc interim.ts ; \ rm -f interim.ts ;
rm -f interim.ts ; \ mv interim.js code.code ;
mv interim.js code.code ; \ cat args.args | xargs -d '\n' timeout -s KILL 3 node code.code
cat args.args | xargs -d '\n' timeout -s KILL 3 node code.code"

View file

@ -3,7 +3,7 @@
mkdir -p /var/lib/lxc/piston/rootfs/exec mkdir -p /var/lib/lxc/piston/rootfs/exec
rm -f /var/lib/lxc/piston/rootfs/exec/* rm -f /var/lib/lxc/piston/rootfs/exec/*
cp -f executors/* /var/lib/lxc/piston/rootfs/exec cp -f executors/* /var/lib/lxc/piston/rootfs/exec
chmod 700 /var/lib/lxc/piston/rootfs/exec/* chmod 705 /var/lib/lxc/piston/rootfs/exec/*
chown -R root:root /var/lib/lxc/piston/rootfs/exec chown -R root:root /var/lib/lxc/piston/rootfs/exec
lxc-start -n piston -d lxc-start -n piston -d