dbus를 수신하고 메시지에 대한 스크립트를 트리거하는 데몬을 만드는 방법

dbus를 수신하고 메시지에 대한 스크립트를 트리거하는 데몬을 만드는 방법

우분투에서 화면 잠금을 해제할 때마다 백그라운드에서 쉘 스크립트를 시작하는 데몬을 만들고 싶습니다. 관련 질문에 대한 답변을 바탕으로 다음과 같은 스크립트를 만들 수 있었습니다.화면에서 스크립트를 실행하여 잠금 및 잠금 해제. 터미널 창에서는 잘 작동합니다. 하지만 이제는 그것으로부터 데몬을 만들고 싶지만 아직 운이 좋지 않았습니다.
어떤 제안이 있으십니까?

답변1

기반으로https://askubuntu.com/questions/150790/how-do-i-run-a-script-on-a-dbus-signal

#!/bin/bash

interface=org.gnome.ScreenSaver
member=ActiveChanged

dbus-monitor --profile "interface='$interface',member='$member'" |
while read -r line; do
    echo $line | grep ActiveChanged && your_script_goes_here
done

그냥 연결해 보세요/etc/init.d/monitor-for-unlock, 실행 가능하게 만든 다음 rc2.d에 소프트 링크합니다.

chmod +x /etc/init.d/monitor-for-unlock
cd /etc/rc2.d
ln -s /etc/init.d/monitor-for-unlock .

답변2

시스템에 이미 그러한 데몬이 있으므로 upstart이에 대한 세션 작업만 수행하면 됩니다.

description "some job description"
start on desktop-unlock
script
        /path/to/your/executable
end script

관련 정보