Run command when system is idle and/or active again

Cara yang akan saya paparkan ini juga bisa digunakan untuk membuat auto hibernate/shurdown Linux, karena adakalanya sebagai sysadmin ketiduran di depan PC/Laptop sehingga PC/Laptop hidup sampai pagi. Cara ini saya uji pada linux distro Debian dan turunannya dengan memanfaatkan xscreensaver, dimana xscrensaver bisa memberikan informasi apakah linux sedang ada aktifitas atau tidak.
 
Silahkan ikuti langkah berikut:
sudo apt install libxss-dev
Menyiapkan lokasi
sudo mkdir /opt/procidle
sudo nano /opt/procidle/getIdle.c
Isi getIdle.c dengan
#include 
#include 

int main(void) {
	Display *dpy = XOpenDisplay(NULL);

	if (!dpy) {
		return(1);
	}

	XScreenSaverInfo *info = XScreenSaverAllocInfo();
	XScreenSaverQueryInfo(dpy, DefaultRootWindow(dpy), info);
	printf("%u\n", info->idle);

	return(0);
}
Simpan dengan Ctrl+o dan keluar dengan Ctrl+x Kemudian compile
sudo gcc -o /opt/procidle/getIdle /opt/procidle/getIdle.c -lXss -lX11
sudo chmod +x /opt/procidle/getIdle
Program ini akan menginformasikan "idle time" (pengguna tidak menggerakkan/klik dengan mouse maupun tidak menggunakan keyboard) dalam milidetik, jadi script bash yang dibangun bisa terlihat seperti ini:
sudo nano /opt/procidle/getIdle.sh
#!/bin/bash

idle=false
idleAfter=3000     # consider idle after 3000 ms

while true; do
	idleTimeMillis=$(/opt/procidle/getIdle)
#	echo $idleTimeMillis  # just for debug purposes.
	if [[ $idleTimeMillis -gt $idleAfter && $idle = false  ]] ; then
		# ------------------------------------------------------
		notify-send -i "face-crying" "I'm sad you has gone!"
		# ------------------------------------------------------
		idle=true
	fi

	if [[ $idleTimeMillis -lt $idleAfter && $idle = true ]] ; then
		# ------------------------------------------------------
		notify-send -i "face-angel" "Horay you come back."
		# ------------------------------------------------------
		idle=false
	fi
	sleep 1 # polling interval

done
sudo chmod +x /opt/procidle/getIdle.sh
Anda bisa uji dengan menjalankan script tersebut
/opt/procidle/getIdle.sh
untuk menghentikan gunakan Ctrl+z Anda bisa jalankan script tersebut di crontab pada @reboot Silahkan gunakan script getIdle.sh dan modifikasi sesuai kebutuhan

The power of documents

Kami sajikan dengan bahasa yang mudah dengan disertai command line yang bisa di copy-paste sehingga memudahkan untuk melakukan modifikasi command line