我想在 Openbox 会话中使用Tint2作为我的面板。
Tint2配置文件是~/.config/tint2/tint2rc。Tint2配置说明如下:
当您更改配置文件时,命令行“killall -SIGUSR1tint2”将强制tint2重新加载它。
什么是
killall -SIGUSR1
Run Code Online (Sandbox Code Playgroud)
做?
换句话说,运行如何killall -SIGUSR1 tint2导致tint2rc重新加载?
编辑:看来 ~/.conkyrc 可以以相同的方式重新加载。从man conky:
强制 Conky 重新加载 ~/.conkyrc 的一个简单方法是:“killall -SIGUSR1 conky”。省去了必须杀掉然后重新启动的麻烦。您现在也可以使用 SIGHUP 执行相同的操作。
该kill命令实际上向进程发送信号......它的命名有点错误。
命令
killall -SIGxxx name
Run Code Online (Sandbox Code Playgroud)
xxx将向名为“name”的进程发送“信号” 。Unix中的进程可以接收并处理一组信号来响应外部事件。默认情况下,kill发送信号 SIGTERM 具有(预定义的)优雅终止进程的效果。(SIGKILL信号会“残酷地”杀死进程,这就是有时需要使用该killall -SIGKILL ...命令的原因)。
有些进程具有硬编码的含义(例如:HUP正在断开连接等)并且有时由内核发送。USR1和USR2是用户可定义的信号。
您甚至可以在脚本中轻松做到这一点:如果您将行放入脚本中
trap "echo TRAPPED" USR1
Run Code Online (Sandbox Code Playgroud)
当您使用kill命令向脚本发送信号USR1时,脚本将打印“TRAPPED”。
所以最后一个问题的答案是:
显然,“tint2”程序的代码在收到信号 USR1 后将重新加载其配置文件。
例如,请参阅http://unixhelp.ed.ac.uk/CGI/man-cgi?signal+7
| 归档时间: |
|
| 查看次数: |
10016 次 |
| 最近记录: |