在第二台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