【发布时间】:2015-06-10 11:54:19
【问题描述】:
我有一个名为lock 的用户定义命令。执行该命令后,系统将被锁定。如果我们只给出正确的密码,那么只有命令
提示出现。现在,我想从脚本执行lock 命令
在后台运行。如果我们执行脚本lock,命令就会被执行,但它不会锁定当前终端。它只锁定后台 bash。它不在当前的 bash 中执行。如何解决这个问题?
谢谢。
【问题讨论】:
-
你不能。后台进程无法控制前台 shell。它们是单独的过程。同理后台脚本不能在前台进程中设置变量。
-
因此,无法从子 shell 执行父 shell 中的命令。这样对吗?谢谢...
-
没错。它们和其他两个进程一样是完全独立的进程。
-
我的要求是:如果我的系统达到1分钟的空闲时间,就会自动执行“lock”命令。至此检查系统的空闲时间,后台进程将运行。如果达到 1 分钟,后台进程执行锁定命令。这是我的要求。那么,有什么办法可以做到这一点。
-
它是否 需要 锁定或是否可以终止 shell 会话?我不知道有什么方法可以直接用外壳做锁的想法。不过,像 GNU screen 和 tmux 这样的东西支持这种超时/锁定。要终止会话,您可以查看
TMOUTbash 变量。此外,无论这个“锁定”命令是什么,听起来(临时)都不是很安全。它在做什么?