如何创建一个简单的循环守护进程 bash 脚本?

如何创建一个简单的循环守护进程 bash 脚本?

我想创建一个简单的守护进程 bash 脚本,如果我的计算机处于非活动状态超过 10 分钟,它将运行一个命令。我创建了一个别名来在终端中运行一个 python 脚本,并计划使用 xprintidle 返回用户处于空闲状态的毫秒数。但是,我对任何类型的 C 都不了解,所以我不知道如何制作守护进程循环脚本。我想在我的循环中:

  1. 检查 xprintidle 返回的时间是否超过 600,000 毫秒
  2. 如果是这样,则创建一个终端窗口,并使其全屏,不是最大化,而是全屏(如 F11)
  3. 然后运行命令矩阵

我不希望脚本暂停或结束任何事情,我只希望它启动终端屏幕保护程序。

如果我有机会使用 xscreensaver 来监视不活动状态并运行 bash 脚本(它不必在启动时自动运行,并且很可能更短),那就太好了,但我仍然需要 bash 脚本。

答案1

就这样,很简单

#!/bin/bash

while [ 1 ]; 
do
  VALUE=$(xprintidle)
  if [ $VALUE -ge 600000  ];
  then
      gnome-terminal --full-screen -e 'matrix'
  fi
  sleep 0.25
done

以上述脚本为例,将其保存在您的个人$HOME/bin文件夹中,作为gnome-terminal-screensaver.sh。确保它可以用执行chmod +x $HOME/bin/gnome-terminal-screensaver.sh。如果您没有,请创建一个。建议打开$HOME/.profile并确保以下 3 行未注释:

# set PATH so it includes user's private bin if it exists
#if [ -d "$HOME/bin" ] ; then
#    PATH="$HOME/bin:$PATH"
#fi

接下来,创建$HOME/.config/autostart/gnome-terminal-screensaver.desktop包含以下内容的文件

[Desktop Entry]
Type=Application
Exec=/home/username/bin/gnome-terminal-screensaver.sh
Terminal=false

记得将 /home/username 更改为实际的 /home/username

相关内容