화면 잠금 / 잠금 해제에서 명령 또는 스크립트를 실행하는 방법은 무엇입니까?


19

화면 잠금 / 잠금 해제 시간을 저장하는 방법을 찾고 있습니다.

A=$(date)
echo $A >> $HOME/time_xprofile

나는 무엇을 시도 했는가 :

$HOME/.bashrc
$HOME/.bash_logout
$HOME/.bash_prompt
$HOME/.xprofile

그런 다음 화면을 잠그고 파일이 나타나는지 확인하고 매번 실패합니다. 보다 시간을 어떻게 확인할 수 있습니까?


이 질문을 읽으면서 X 서버를 실행하고 있지 않다고 생각했습니다. 선택한 답변 은 X 서버 실행하는 동안 순수하게 작동 합니다. 어쩌면 당신은 당신의 상황을 더 잘 설명 할 수 있습니다 ...
ExploWare

답변:


20

다음 스크립트는 time_xprofile가정 의 파일 에 잠금 / 잠금 해제 시간을 기록합니다.

#!/bin/bash

dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" | \
( while true
    do read X
    if echo $X | grep "boolean true" &> /dev/null; then
        echo "locking at $(date)" >> $HOME/time_xprofile
    elif echo $X | grep "boolean false" &> /dev/null; then
        echo "unlocking at $(date)" >> $HOME/time_xprofile
    fi
    done )

스크립트를 저장하십시오. 실행 권한을 부여하십시오.

chmod +x script.sh

달리는 방법

./script.sh &

참고 스크립트는 다시 시작해야합니다. 그것을 죽이지 마십시오. 스크립트가 백그라운드에서 실행되는 동안 화면 잠금 / 잠금 해제를 켜면 잠금 / 잠금 해제 시간이 time_xprofile집 에 파일 로 기록됩니다 . 화면 잠금 / 잠금 해제에서 명령이나 스크립트를 실행하는 데 사용할 수 있습니다.

현재 터미널을 닫으면 스크립트가 종료됩니다. 당신이 사용할 수있는

nohup ./script.sh &

그러면 터미널을 닫은 후에도 계속 실행됩니다.

스크립트를 죽이는 방법

프로세스를 종료하려면 터미널에서 사용하십시오.

ps ax| grep "[s]cript.sh" | cut -d' ' -f2 | xargs kill

위의 스크립트는 이 답변에서 영감을 얻었습니다.


XServer와 함께 우분투 17.10에서 여전히 작동합니까? 나는 왜 나를 위해 일하지 않는지 모르겠다 ..
eddieferetro

그 이상 : 그것은 몇 번만 작동합니다 ...
eddieferetro

1
@eddieferetro 나는 아직 16.04에 당신을 위해 그것을 테스트 할 수 없습니다. 문제를 명시하는 새로운 질문을하지 않겠습니까? 화면 잠금에 대한 DBUS 이벤트는 17.10에서 변경 될 수 있습니다
souravc

6

우분투 14.04에서 화면 잠금 잠금 해제에 대한 DBus 이벤트가 변경되었으며 화면 잠금 및 잠금 해제 이벤트에 바인딩하기위한 새 스크립트는 다음과 같습니다.

dbus-monitor --session "type='signal',interface='com.ubuntu.Upstart0_6'" | \
(
  while true; do
    read X
    if echo $X | grep "desktop-lock" &> /dev/null; then
      SCREEN_LOCKED;
    elif echo $X | grep "desktop-unlock" &> /dev/null; then
      SCREEN_UNLOCKED;
    fi
  done
)

SCREEN_LOCKED 및 SCREEN_UNLOCKED를 필요한 것으로 바꾸십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.