Linux 是否可以检测用户类型命令有多长时间没有执行

Linux 是否可以检测用户类型命令有多长时间没有执行,linux,shell,daemon,Linux,Shell,Daemon,我正在Linux shell上工作,我正在尝试编写一个脚本,它就像一个触发器,如下所示: 如果我有这样一个脚本,我可以将它作为一个守护进程。例如,我可以让我的系统执行以下操作: 你需要小心。。。例如,如果命令本身的执行时间超过2分钟怎么办?在这种情况下,关闭系统可能是不必要的 获取此行为的唯一方法是从shell应用程序内部获取,而不是作为单独的实体/守护进程,您可以在其中了解状态- e、 g:正在获取\u命令,或正在执行\u命令 在bash中,您可以使用: TMOUT 如果设置为大于零的值,则T

我正在Linux shell上工作,我正在尝试编写一个脚本,它就像一个触发器,如下所示:

如果我有这样一个脚本,我可以将它作为一个守护进程。例如,我可以让我的系统执行以下操作:


你需要小心。。。例如,如果命令本身的执行时间超过2分钟怎么办?在这种情况下,关闭系统可能是不必要的

获取此行为的唯一方法是从shell应用程序内部获取,而不是作为单独的实体/守护进程,您可以在其中了解状态- e、 g:正在获取\u命令,或正在执行\u命令

在bash中,您可以使用:

TMOUT

如果设置为大于零的值,则TMOUT将被视为读取内置项的默认超时。请参见Bash内置项。当输入来自终端时,如果输入在TMOUT秒后未到达,select命令see CONDICTION CONSTRUCTES将终止。 在交互式shell中,该值被解释为发出主提示后等待输入行的秒数。如果没有到达完整的输入行,Bash将在等待该秒数后终止

请注意,这也会影响脚本进行的任何读取或选择调用

像这样的东西会满足你的要求:

export TMOUT=120
bash
shutdown -h now
如果您正在开发自己的shell,那么当然可以在接受用户输入时使用类似select2的功能

if user stops typing command for 2 min
    shutdown -h now
fi
export TMOUT=120
bash
shutdown -h now