在 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
。這些工具可以更精確地控制并發運行的進程數量。