小编Mus*_*afa的帖子

当最后一个进程处于尾部时未捕获 SIGTERM 信号

我有以下脚本,其中包含tail --pid=${somepid} -f ${mylogs}. 我想捕获SIGTERM该 PID 并对其进行一些正常关闭,因为该进程无法理解SIGTERM并痛苦地终止。

echo "pid: $$"

trap_with_arg() {
    func="$1" ; shift
    for sig ; do
        trap "$func $sig" "$sig"
    done
}

func_trap() {
    echo Trapped: $1
}

trap_with_arg func_trap INT TERM EXIT STOP
tail -f /dev/null
Run Code Online (Sandbox Code Playgroud)

当我kill -15 ${bashpid}从另一个终端使用时,除非使用 CTRL+C,否则不会打印捕获的信号。当最后一个命令不是一个进程,而是一个read内置的 shell 时,捕获的信号将立即打印。为什么会这样呢?如果我执行以下操作,它会起作用:

tail -f /dev/null &
wait $!
Run Code Online (Sandbox Code Playgroud)

linux bash signals

2
推荐指数
1
解决办法
984
查看次数

GPG仍然看到撤销子密钥的好兆头仍然有效

我创建了一个密钥,并创建了一个子密钥。使用子密钥,我签署了一个文件。验证工作。撤销密钥,验证不成立。这是预期的行为。

但是,如果我尝试使用相同的子密钥签名并验证它仍然有效。我究竟做错了什么?这是我正在做的全部事情:

$ gpg --gen-key
$ gpg -k
/Users/mustafa/.gnupg/pubring.kbx
---------------------------------
pub   rsa2048 2019-02-03 [SC] [expires: 2021-02-02]
      5DD923FBCF6392A5CB366167D4C0627A07510C6C
uid           [ultimate] Mustafa <mustafa91@gmail.com>
sub   rsa2048 2019-02-03 [E] [expires: 2021-02-02]
Run Code Online (Sandbox Code Playgroud)

使用编辑键,添加一个子键。

$ gpg --edit-key 5DD923FBCF6392A5CB366167D4C0627A07510C6C

sec  rsa2048/D4C0627A07510C6C
     created: 2019-02-03  expires: 2021-02-02  usage: SC
     trust: ultimate      validity: ultimate
ssb  rsa2048/E058B91696C43666
     created: 2019-02-03  expires: 2021-02-02  usage: E

gpg> addkey

sec  rsa2048/D4C0627A07510C6C
     created: 2019-02-03  expires: 2021-02-02  usage: SC
     trust: ultimate      validity: ultimate
ssb  rsa2048/E058B91696C43666
     created: 2019-02-03  expires: 2021-02-02  usage: E
ssb  rsa2048/38616BDAE66E418C
     created: 2019-02-03  expires: 2019-02-13 …
Run Code Online (Sandbox Code Playgroud)

verification sign gnupg digital-signature

2
推荐指数
1
解决办法
345
查看次数

Javascript非UTF-8字符搜索Google Chrome扩展程序

编辑:

我正在创建Chrome扩展程序,文件必须采用UTF-8编码.我使用JQuery从页面获取内容,并检查是否包含包含Ö,ı和İ的特定字符串.但是,因为Chrome强制文件必须编码为UTF-8; 我无法搜索"İ,ı,Ö".

var p = txt.indexOf("?"); 
Run Code Online (Sandbox Code Playgroud)

不能正常工作,因为我无法使用İ,Ö或ı保存文件.

javascript turkish utf-8 google-chrome-extension

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

Python Ncurses打印一个char来定位

我不是那么做ncurses,但它应该在C上工作,我不知道出了什么问题,我只是想连续打印一些字符到屏幕但是我找不到如何修复这个错误:

    File "capture.py", line 37, in <module>
     stdscr.move(y,x)
    _curses.error: wmove() returned ERR  
Run Code Online (Sandbox Code Playgroud)

码:

(irrelevant parts of the code are removed)
import curses

stdscr = curses.initscr()
curses.noecho();

palette = [' ', ' ', '.', '.', '/', 'c', '(', '@', '#', '8']

# index is something between 0 and len(palette), not important 
for x in xrange(50):
    for y in xrange(30):
        stdscr.move(y,x)
        sdtscr.addch(palette[index])
stdscr.refresh()
Run Code Online (Sandbox Code Playgroud)

python curses terminal ncurses

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

Mongoose Upsert,语法错误

我遇到了使用Mongoose问题的问题.它说语法无效,unexpected token "."最后一行说.但我无法理解究竟是什么问题.我一直在研究它超过一个小时,我错过了一个简单的概念吗?

var seriesSchema = new Schema({
    type : {type: Number, default: 1},
    features: {
        tvdb_id: {type: Number, unique: true},
        ....
    },
    created : {type: Date}
});

var SeriesModel = mongoose.model('Series', seriesSchema);

var instance = new SeriesModel();                   
// Setting instance properties to some values
SeriesModel.update({features.tvdb_id : serieData.id}, instance, {upsert: true}); 
Run Code Online (Sandbox Code Playgroud)

upsert mongoose mongodb node.js

0
推荐指数
1
解决办法
1090
查看次数

为C代码创建makefile,无需运行./

我需要创建一个makefile,将编译我simpleprogram.csp和它可以被称为像Unix命令一样ls,ps等等,没有明确地写./sp.我查看了网络,无法找到解决方案,或以错误的方式搜索它.我不能搜索"没有./的可执行文件",因为我不知道这是什么叫=>" ./"

c unix makefile

0
推荐指数
1
解决办法
220
查看次数

Javascript 将 0.1 添加到 0.2 导致 0.30000000000000004

可能重复:
Javascript 数学错误:不精确的浮点数

我有以下代码来制作动画(doIt 制作动画但不相关)。

function recur(max, i){
    console.log("i: " + i);
    if ( i <= 1){
        setTimeout(function(){
            // doIt(max,i);
            recur(max, i + 0.1);                
        },100);
    } else {
        // OK
    }
}
recur(16,0);
Run Code Online (Sandbox Code Playgroud)

但是,i 值不一致。对于以下代码,输出为(Google Chrome 20):

i: 0 
i: 0.1 
i: 0.2 
i: 0.30000000000000004
i: 0.4 
i: 0.5 
i: 0.6 
i: 0.7 
i: 0.7999999999999999 
i: 0.8999999999999999 
i: 0.9999999999999999 
i: 1.0999999999999999 
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我想要 0.3 不是一个如此接近的数字。不幸的是,这在每次迭代中都会发生。

javascript settimeout

0
推荐指数
1
解决办法
7930
查看次数