在 CentOS 系统中,nohup
命令用于在后台运行程序,即使关闭终端或断开连接,程序也会继续运行。要实现并发控制,可以使用文件锁或其他进程管理工具来确保同时只有一个实例在运行。
以下是使用文件锁实现并发控制的示例:
my_script.sh
的 shell 脚本,内容如下:#!/bin/bash
# 检查是否已经存在锁文件
if [ -e /tmp/my_script.lock ]; then
echo "Script is already running."
exit 1
fi
# 创建锁文件
touch /tmp/my_script.lock
# 在这里执行你的程序或命令
# ...
# 删除锁文件
rm /tmp/my_script.lock
chmod +x my_script.sh
nohup
命令运行脚本:nohup ./my_script.sh &
这样,当你尝试多次运行 my_script.sh
时,只有第一次会实际执行,其他尝试将显示 “Script is already running.” 并退出。
另一种实现并发控制的方法是使用进程管理工具,如 systemd
或 supervisord
。这些工具可以更精确地控制并发运行的进程数量。