책상위에 랩톱 두대를 놓고 각각 윈도와 우분투를 돌리는데요
윈도가 메인이고 우분투는 홈오토메이션 관련된 이런저런 자잘한 작업용도로만 사용중입니다
오늘 아침에 갑자기 필받아서 bash스크립트를 하나 짰는데 이걸 crontab에 올려서 매일 한번 실행시키게 하려니까 잘 안 됩니다
검색해보니 아마도 크론에서 xdg-open같은 프로그램은 실행이 잘 안 되는 모양이드라구요
GUI인 GNOME Scheduled Tasks를 써보라고들 해서 찾아보니 우분투14부터 없앴다고 하네요
제 우분투는 20.04 LTS focal입니다
이런 경우 어떻게 해야 할까요?
제 스크립트는 xdg-open, xdotool, publish_mqtt 등을 써서 특정 웹사이트에 들어가서 몇개 클릭을 자동으로 하고 결과물을 mptt로 올리는 단순한 작업을 수행하게끔 짰습니다 (chatGPT가 다 짜줬어요 ㅎㅎ)
감사합니다

나름 검색을 해보니
https://stackoverflow.com/questions/38391952/cron-xdotool-doesnt-run#:~:text=The%20xdotool%20command%20is%20automation,System%20display%20server%20to%20use.
DISPLAY와 XAUTHORITY를 먼저 지정해주면 된다고 해서 따라했지만
Running Firefox as root in a regular user's session is not supported. ($XAUTHORITY is /run/user/1000/gdm/Xauthority which is owned by 0000.)
이런 에러를 뿜더군요
https://askubuntu.com/questions/1037052/running-firefox-as-root-in-a-regular-users-session-is-not-supported-xauthori
여기서 나온 내용을 좀 읽어보니 'root로 웹브라우저를 돌리지마라'는 뭔가 무시무시한 경고들이 나와서 일단 접기로 했습니다.
보시다시피 제가 원하는건 사실 간단한거라 아마도 윈도의 AutoHotKey정도면 별 어려움없이 가능할 것 같아서 그쪽으로 알아볼 생각입니다
$HOME/.config/systemd/user/tldr-update.service:
```
[Service]
CPUSchedulingPolicy=idle
ExecStart=/nix/store/fvlqrg7nmqvmy6llq3qxfayv4w0fp78n-tldr-update
IOSchedulingClass=idle
Type=oneshot
[Unit]
After=multi-user.target
Description=daily update tldr
```
$HOME/.config/systemd/user/tldr-update.timer:
```
[Install]
WantedBy=timers.target
[Timer]
AccuracySec=1h
OnCalendar=daily
Persistent=true
[Unit]
Description=daily update tldr
```
위 두개 유닛 작성으로, tldr 을 업데이트하는 서비스가 매일 실행되도록 systemd timer 에 등록되어 있습니다.
`/nix/store/fvlqrg7nmqvmy6llq3qxfayv4w0fp78n-tldr-update` 가 제가 실행하는 스크립트 경로이구요. 작성한 스크립트의 절대경로를 넣으시면 됩니다.
crontab에서 user 로 스크립트를 실행할 수 있는 것 같습니다.
https://serverfault.com/questions/352835/crontab-running-as-a-specific-user
제가 crontab 은 한번도 안써봐서 잘 몰랐습니다.
/bin/sh: 1: nomuza: not found
Error: no DISPLAY environment variable specified
Error: Can't open display: (null)
Failed creating new xdo instance
그냥 아두이노로 할까도 생각중입니다. 이건 그냥 바로 직방으로 가능하거든요
58 19 * * * DISPLAY=:0 su nomuza -c "/home/nomuza/bin/xxxDailyLogin.sh" >> /home/nomuza/bin/logs/crontab.log 2>&1
감사합니다.
crontab 동작 가능
않될 수가 없어요