小编eZa*_*oto的帖子

我刚刚删除了我的 /usr/share/X11/xkb/symbols 目录并重新启动,为什么我仍然可以输入?

我正在运行 Linux Mint 并且我正在尝试编辑我的符号文件但没有任何更改 - 我已经尝试重新启动 X 并重新启动计算机。最终我感到沮丧并尝试删除符号目录(好吧,将其移动到父目录),如果这有所作为,我将使用 TTY 恢复更改。我重新启动了计算机,但我仍然可以输入 - 为什么?

更多信息:我发现的唯一与 xkb 相关的目录(我使用过locate xkb),是那些在/usr/share/X11/xkb及其子目录中的目录,所以这些是我一直在编辑的文件。

x11 xkb

7
推荐指数
1
解决办法
1342
查看次数

vim中`<Esc>`和`inoremap jk <Esc>`的行为差异

我刚刚在一台新计算机上安装了 Ubuntu 12.04,apt-get install[ed] vim并且我的别名出现了一些奇怪的行为Esc- 如果我处于INSERT模式并键入Esc键,我退出INSERT模式并且光标向左移动一个字符,正如预期的那样,但如果我输入jk别名,我在我的定义.vimrcinoremap jk <Esc>,我退出INSERT模式,光标移动一个字符正确的,这实际上是相当令人不安。关于为什么会这样的任何想法?

vim ubuntu

6
推荐指数
1
解决办法
2866
查看次数

为什么 SIGINT 在脚本的后台进程上不起作用?

我在脚本中有以下内容:

yes >/dev/null &
pid=$!
echo $pid
sleep 2
kill -INT $pid
sleep 2
ps aux | grep yes
Run Code Online (Sandbox Code Playgroud)

当我运行它时,输出显示它yes在脚本结束时仍在运行。但是,如果我以交互方式运行命令,则进程将成功终止,如下所示:

> yes >/dev/null &
[1] 9967
> kill -INT 9967
> ps aux | grep yes
sean ... 0:00 grep yes
Run Code Online (Sandbox Code Playgroud)

为什么 SIGINT 在交互式实例中终止进程而不在脚本化实例中终止?

编辑

以下是一些可能有助于诊断问题的补充信息。我编写了以下 Go 程序来模拟上述脚本。

package main

import (
    "fmt"
    "os"
    "os/exec"
    "time"
)

func main() {
    yes := exec.Command("yes")
    if err := yes.Start(); err != nil {
        die("%v", err)
    }

    time.Sleep(time.Second*2)

    kill := exec.Command("kill", …
Run Code Online (Sandbox Code Playgroud)

process signals shell-script interrupt background-process

5
推荐指数
1
解决办法
2647
查看次数