我希望阻止自定义用户信号的进程,并且当信号到达时它应该唤醒shell脚本中的等待进程?只需编写一些可以处理的步骤?shell脚本中的信号处理
2
A
回答
0
这不是100%清楚你想做什么,但它听起来像你基本上想要一个shell-scrip“键盘记录器”在后台侦听并根据事情采取行动。如果我是正确的,我不会问为什么......如果我不是我道歉;-)
如果你想去核心,你可以了解/ dev/input/event *文件在文件系统中以及如何遵循它们。或者你可以看看本教程为创建一个键盘记录器和洛: http://www.slideshare.net/rmorrill/creating-a-keystroke-logger-in-unix-shell-scripting
最后,如果你真的只是想安装和去,你可以尝试安装这样的: http://www.justhackitnow.com/2012/03/keylogger-for-linux.html
1
如果您希望将信号发送信号是17号,那么你可以使用:在接收到信号时
trap ":" 17
sleep 1000000
trap 17
# ...what you want to happen after the signal is received...
第一trap
命令将执行命令引用(:
)。 :
命令什么也不做。但是,您不能使用trap "" 17
,因为这意味着'忽略信号17',这与您想要的相反。
sleep 1000000
是一种长时间不使用CPU资源而无所作为的方法。
第二个trap
取消信号17的信号处理,恢复默认行为。
之后,你可以把任何你想要执行的代码一旦收到信号。
而不是使用sleep
的,您可能希望创建和使用程序,pause
,其无限期等待(而不是风险sleep
信号之前唤醒接收)。你可以使用这个简单的程序:
#include <unistd.h>
int main(void)
{
pause();
return(0);
}
作为一个细节点,返回通常不会被执行;该信号通常会强制程序在pause()
以errno == EINTR
返回之前终止。
相关问题
- 1. shell脚本中的文本处理
- 2. Shell脚本错误处理
- 3. “异常处理” shell脚本
- 4. 批处理脚本到Shell脚本
- 5. shell脚本中的异常处理?
- 6. 在Emacs shell和Cygwin下处理信号
- 7. sesu - 在shell脚本中处理密码
- 8. 在shell脚本中处理FTP错误
- 9. 在shell脚本中处理错误
- 10. 使用shell脚本处理文本?
- 11. 文本处理(换行)在shell脚本
- 12. 信号处理
- 13. UNIX中的信号处理
- 14. C++中的信号处理
- 15. Go中的信号处理
- 16. Unix中的信号处理
- 17. Windows中的信号处理
- 18. awk shell脚本用双引号处理csv文件
- 19. Shell脚本处理隐藏文件
- 20. shell脚本来处理文件
- 21. 恢复停止shell脚本处理
- 22. 将批处理脚本转换为Shell
- 23. 转换shell脚本,Windows批处理
- 24. 通过sqlplus处理shell脚本
- 25. 转换的Windows批处理脚本的Linux Shell脚本
- 26. shell脚本,子shell,子脚本,管道 - (?)WEIRD CTRL + C信号传播
- 27. 如何处理mini-shell中的Ctrl + Z信号。 C
- 28. SIGCHLD信号处理
- 29. MPI信号处理
- 30. shell脚本:执行中的单引号
你需要的命令是'trap'。这是一个shell内置命令。搜索“shell陷阱信号”以查找大量教程。 –