Bagaimana cara menjalankan perintah atau skrip di kunci layar / membuka kunci?


19

Saya mencari cara untuk menyimpan waktu kunci / membuka kunci layar.

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

Apa yang saya coba:

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

Kemudian saya mengunci layar dan memeriksa apakah file muncul dan gagal setiap saat. Bagaimana saya bisa mengecek waktu?


Ketika saya membaca pertanyaan ini, saya pikir Anda tidak menjalankan X server. Jawaban yang Anda pilih adalah murni berfungsi saat menjalankan server X. Mungkin Anda bisa menggambarkan situasi Anda dengan lebih baik ...
ExploWare

Jawaban:


20

Skrip berikut akan menulis waktu kunci / buka kunci dalam file time_xprofiledi rumah Anda.

#!/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 )

simpan skrip. Berikan izin eksekusi.

chmod +x script.sh

Bagaimana cara menjalankannya

./script.sh &

Catatan Skrip harus dijalankan di tanah belakang. Jangan bunuh itu. Jika Anda memutar kunci layar / membuka kunci saat skrip berjalan di latar belakang, waktu kunci / buka kunci Anda akan dicatat dalam time_xprofilefile di rumah Anda. Seseorang dapat menggunakannya untuk menjalankan beberapa perintah atau skrip di kunci layar / membuka kunci.

Harap diingat bahwa jika Anda menutup terminal saat ini, skrip Anda akan terbunuh. Anda dapat gunakan

nohup ./script.sh &

Kemudian akan terus berjalan bahkan setelah menutup terminal.

Cara membunuh skrip

Untuk mematikan proses, gunakan di terminal

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

Skrip di atas terinspirasi oleh jawaban ini


Apakah masih berfungsi di ubuntu 17.10 dengan XServer? Saya tidak tahu mengapa tidak bekerja untuk saya ..
eddieferetro

Lebih dari itu: ini hanya berfungsi beberapa kali ...
eddieferetro

1
@eddieferetro Saya masih di 16,04 tidak dapat mengujinya untuk Anda. Mengapa Anda tidak mengajukan pertanyaan baru yang menjelaskan masalah Anda? Acara Dbus untuk penguncian layar dapat diubah di 17.10
souravc

6

Di ubuntu 14.04 acara DBus untuk membuka kunci layar telah berubah dan skrip baru untuk mengikat ke kunci layar dan membuka kunci acara tampak seperti berikut

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
)

Ganti SCREEN_LOCKED dan SCREEN_UNLOCKED dengan apa yang perlu Anda lakukan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.