나는 보통 내 시스템에서 2개의 Xorg 세션을 실행하고 있는데, 각각은 자체 시스템 사용자가 있는 다른 가상 터미널에서 하나는 업무용이고 다른 하나는 여가용입니다.
나는 이들 사이를 자주 전환하지는 않지만, 전환할 때 첫 번째 세션에서 시간 추적기 소프트웨어를 끄고 대상 세션에서 시작해야 한다는 것을 기억해야 합니다. 이는 Rescuetime [1]이 동시에 2개의 xorg 세션을 수신할 수 없기 때문입니다.
따라서 Xorg 세션이 작동했음을 인식할 때마다 어떻게든 스크립트를 트리거함으로써 실행 중인 복구 시간 프로세스를 종료하고 새 프로세스를 시작할 수 있습니다.
답변1
스크립트를 작성할 수도 있습니다.
#!/bin/bash
inotifywait -e modify /sys/devices/virtual/tty/tty0/active
case "$(cat /sys/devices/virtual/tty/tty0/active)" in
tty7) <dothis> ;;
tty8) <dothat> ;;
esac
exec $0 $*
"파일"은 어떤 가상 콘솔이 활성화되어 있는지 등 을 /sys/devices/virtual/tty/tty0/active
알려주며 한 가상 콘솔에서 다른 가상 콘솔로 전환할 때 변경됩니다. 명령 은 해당 경로 이름에 대한 이벤트가 발생할 때까지 기다리므로 스크립트는 관련 작업을 수행할 경로 이름을 확인할 수 있습니다. 이 줄 (이 줄) 이후 스크립트는 다음 가상 콘솔 전환을 캡처하기 위해 자신을 다시 호출합니다.tty7
tty1
inotifywait
modify
exec
Debian 기반 Linux에서는 inotifywait
이 패키지의 일부를 찾을 수 있습니다 inotify-tools
. 경로 이름에는 일반적으로 오래전부터 Linux 커널에 속했던 /sys/..
올바르게 설치된 경로가 필요합니다 .sysfs