You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GNU parallel --semaphore按Ctrl-C后卡住,如何强制释放指定--id?

解决GNU parallel semaphore锁残留问题

紧急修复当前锁死状态

  • 查看指定ID的信号量状态:
    sem --id mutex_1a --status
    
  • 强制终止关联进程并清除锁:
    sem --id mutex_1a --kill
    
  • 若上述命令无效,手动删除锁文件(GNU parallel的信号量文件默认存放在用户目录的.parallel/semaphores下):
    rm -rf ~/.parallel/semaphores/mutex_1a
    

预防脚本中断后锁残留

在脚本开头添加自动清理旧锁的逻辑,每次启动脚本时会先清除之前的残留锁:

#!/bin/bash

# 清理同名信号量的残留锁,忽略执行错误
sem --id mutex_1a --kill 2>/dev/null || true

IFS=,
while read -r col1 col2 col3 col4; do
  echo "started"
  sem --id mutex_1a -j+0 docker run --rm --gpus=all -v "/mnt/c/Work/Imaging/Data/dicomsSorted/$col1:/ukbdata/$col1" fbp:version1 ./runScripts.sh $col1 2 -a stdout;
done < "/mnt/c/Work/Imaging/Data/forPipeline/pidAgeSexSite.csv"
echo "waiting"
sem --wait --id mutex_1a
echo "finished"

内容的提问来源于stack exchange,提问作者DR_OG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 13:18:23