diff --git a/README.md b/README.md index 243e2f4..eafb630 100644 --- a/README.md +++ b/README.md @@ -31,3 +31,90 @@ To make a user be an admin, the only way is via database. # Judge SYZOJ 2 uses a Docker-based sandboxed judger. Please go to [syzoj-judge](https://github.com/syzoj/syzoj-judge). + +# Advanced +## System Service +### Run SYZOJ 2 +Add SYZOJ 2 to system services. +``` bash +vim [syzoj2 path]/runsyzoj +``` +Edit `runsyzoj` as as follows. +``` bash +#!/bin/bash +cd [syzoj2 path] +npm start > log.txt 2>&1 +``` +**Please change `[syzoj2 path]`.** +### Run SYZOJ-JUDGE +Add SYZOJ-JUDGE to system services. +``` bash +vim [syzoj-judge path]/runjudge +``` +Edit `runjudge` as as follows. +``` bash +#!/bin/bash +cd [syzoj-judge path] +npm start > jlog.txt 2>&1 +``` +**Please change `[syzoj-judge path]`.** +### Add To System Service +``` bash +vim /etc/systemd/system/syzoj.service +``` +Edit `/etc/systemd/system/syzoj.service` as as follows. +``` bash +[Unit] +Description=SYZOJ Online Judge +After=network.target + +[Service] +Type=simple +PIDFile=/run/syzoj.pid +WorkingDirectory=[syzoj2 path] +ExecStart=[syzoj2 path]/runsyzoj +StandardOutput=null +StandardError=null + +[Install] +WantedBy=multi-user.target +``` +**Please change `[syzoj2 path]`.** + +``` bash +vim /etc/systemd/system/syzoj-judge.service +``` +Edit `/etc/systemd/system/syzoj-judge.service` as as follows. +``` bash +[Unit] +Description=SYZOJ Judge Daemon +After=network.target + +[Service] +Type=simple +PIDFile=/run/syzoj-judge.pid +WorkingDirectory=[syzoj-judge path] +ExecStart=[syzoj-judge path]/runjudge +StandardOutput=null +StandardError=null + +[Install] +WantedBy=multi-user.target +``` +**Please change `[syzoj-judge path]`.** +### Usage +#### Start +``` bash +systemctl start syzoj +systemctl start syzoj-judge +``` +#### Stop +``` bash +systemctl stop syzoj +systemctl stop syzoj-judge +``` +#### Restart +``` bash +systemctl restart syzoj +systemctl restart syzoj-judge +```