在第二台Ubuntu安裝DMOJ Judge Server
Step1)在第二台Ubuntu主機,安裝Judge伺服器
$ apt install python3-dev python3-pip build-essential libseccomp-dev -y
$ pip3 install dmoj
Step2)在第一台主網站DMOJ,修改/home/jang/site/dmoj/local_settings.py,新增自己的IP
BRIDGED_JUDGE_ADDRESS = [('localhost', 9999),('主網站DMOJ的IP',9999)]
重新啟動服務
$ supervisorctl restart all
Step3)在第一台主網站DMOJ,設定id與key
登入第一台DMOJ的管理者,點選「Summissions -> Judge」,新增Judge主機的Name與讓DMOJ產生key
將Judge主機的Name與key填入第二台Ubuntu的使用者資料夾下,例如:/home/jang/site/judge.yml的id與key,如下範例。
id: jang
key: "uB3ehed:g+q#;LYa;-rN<z#Cxxxxxxxxxxxxxxxxxxxxxxxx"
Step4)在第二台Ubuntu主機,使用dmoj-autoconf產生runtime的設定,貼到/home/jang/site/judge.yml
$ dmoj-autoconf
runtime:
as_x64: /usr/bin/x86_64-linux-gnu-as
as_x86: /usr/bin/as
awk: /usr/bin/mawk
cat: /usr/bin/cat
g++: /usr/bin/g++
g++11: /usr/bin/g++
g++14: /usr/bin/g++
g++17: /usr/bin/g++
gcc: /usr/bin/gcc
gcc11: /usr/bin/gcc
ld_x64: /usr/bin/x86_64-linux-gnu-ld
ld_x86: /usr/bin/ld
perl: /usr/bin/perl
php: /usr/bin/php
python3: /home/jian/dmojsite/bin/python3
sed: /usr/bin/sed
Step5)使用problem_storage_root設定測資資料夾,建立資料夾/home/jang/site/problems,資料夾下需要有該題測資,該題目才會有此judge server,可以使用WinSCP從第一台主網站DMOJ下載測資,到第二台的Judge Server。
完整judge.yml如下
Step6)執行Judge Server,使用不是root的使用者,進入dmojsite虛擬環境,執行「dmoj -c judge.yml 第一台DMOJ主機的IP」啟動Judge Server
$ . /home/jang/dmojsite/bin/activate
(dmojsite) $ dmoj -c judge.yml 第一台DMOJ主機的IP
出現綠色勾勾表示,DMOJ連到此Judge Server