Task #66
νμΌ λ³΅μ¬
μμ λͺ λ Ήμ΄
[π΄ HIGH] ## Task #65 λ§λ¬΄λ¦¬: systemd νμ΄λ¨Έ 3κ° μμ± + git push
### νμ¬ μν
- `dream_diary.py` β
μμ± (λ§€μΌ 03:00 KST)
- `ai_debate.py` β
μμ± (λ§€μ£Ό μ 09:00 KST)
- `riddle_engine.py` β
μμ± (λ§€μΌ 04:30 KST)
- systemd νμ΄λ¨Έ/μλΉμ€ νμΌ: β μμ
- git push: β μ λ¨
### ν μΌ
#### 1. systemd μλΉμ€/νμ΄λ¨Έ νμΌ 3μΈνΈ μμ±
κ°κ° `/etc/systemd/system/`μ μμ± (execute_pythonμΌλ‘ subprocess μ¬μ©)
**leninbot-dream.service**
```ini
[Unit]
Description=Cyber-Lenin Dream Diary Generator
After=network.target
[Service]
Type=oneshot
User=grass
WorkingDirectory=/home/grass/leninbot
ExecStart=/home/grass/leninbot/venv/bin/python dream_diary.py
EnvironmentFile=/home/grass/leninbot/.env
StandardOutput=journal
StandardError=journal
```
**leninbot-dream.timer**
```ini
[Unit]
Description=Run Dream Diary daily at 03:00 KST (18:00 UTC)
[Timer]
OnCalendar=*-*-* 18:00:00
Persistent=true
[Install]
WantedBy=timers.target
```
**leninbot-debate.service**
```ini
[Unit]
Description=Cyber-Lenin AI Debate Generator
After=network.target
[Service]
Type=oneshot
User=grass
WorkingDirectory=/home/grass/leninbot
ExecStart=/home/grass/leninbot/venv/bin/python ai_debate.py
EnvironmentFile=/home/grass/leninbot/.env
StandardOutput=journal
StandardError=journal
```
**leninbot-debate.timer**
```ini
[Unit]
Description=Run AI Debate every Monday at 09:00 KST (00:00 UTC)
[Timer]
OnCalendar=Mon *-*-* 00:00:00
Persistent=true
[Install]
WantedBy=timers.target
```
**leninbot-riddle.service**
```ini
[Unit]
Description=Cyber-Lenin Riddle Engine
After=network.target
[Service]
Type=oneshot
User=grass
WorkingDirectory=/home/grass/leninbot
ExecStart=/home/grass/leninbot/venv/bin/python riddle_engine.py
EnvironmentFile=/home/grass/leninbot/.env
StandardOutput=journal
StandardError=journal
```
**leninbot-riddle.timer**
```ini
[Unit]
Description=Run Riddle Engine daily at 04:30 KST (19:30 UTC)
[Timer]
OnCalendar=*-*-* 19:30:00
Persistent=true
[Install]
WantedBy=timers.target
```
#### 2. systemd νμ±ν
```bash
systemctl daemon-reload
systemctl enable --now leninbot-dream.timer
systemctl enable --now leninbot-debate.timer
systemctl enable --now leninbot-riddle.timer
```
#### 3. νμ±ν νμΈ
```bash
systemctl list-timers --all | grep leninbot
```
#### 4. git add/commit/push
```bash
cd /home/grass/leninbot
git add dream_diary.py ai_debate.py riddle_engine.py ollama_client.py
git commit -m "feat: add dream_diary, ai_debate, riddle_engine (Ollama autonomous play modules)"
git push origin main
```
### μλ£ κΈ°μ€
- systemctl list-timersμ leninbot-dream, leninbot-debate, leninbot-riddle 3κ° νμ
- git push μ±κ³΅
- μλ£ λ³΄κ³ μ μμ±