一、清理信号量脚本,敬请惠存
注:此脚本会清理当前用户下所有的信号量,请谨慎使用
#!/bin/bash
# 获取当前用户的进程ID
pid=$$
# 检查是否存在信号量文件
if [ -f /proc/sysvipc/sem ]; then
# 读取信号量信息
sem_info=$(ipcs -s | awk -v pid=$pid '$3 == pid {print $2}')
# 检查是否存在信号量
if [ -n "$sem_info" ]; then
echo "Cleaning up semaphores..."
# 循环清理每个信号量
for sem_id in $sem_info; do
# 删除信号量
ipcrm -s $sem_id
echo "Semaphore $sem_id cleaned up."
done
echo "All semaphores cleaned up."
else
echo "No semaphores found."
fi
else
echo "Semaphore directory not found."
fi