我有一个通常在后台运行的脚本;它设置了我用于数据库连接的端口转发,同时开发了一个细节目前无关紧要的应用程序。因为我总是希望它运行,所以我将它设置为在新外壳打开时启动 - 它检查该端口是否正在使用,如果没有则开始转发。
function forward {
if lsof -Pi :55433 -sTCP:LISTEN -t >/dev/null ; then
echo "redirect already running"
else
target=$(~/environment-destination.sh staging)
~/forwarder.sh 55433 stuff.rds.amazonaws.com:5432 $target > /dev/null &
echo "redirect running"
fi
}
我想要做的是使另一个脚本成为可能,在任何 shell 中运行,停止这个脚本并释放端口。(主要是我想要这个,因为我偶尔想设置转发到生产实例而不是登台环境。)我尝试将其保存pid
到一个文件并pkill
在其上运行,但这不起作用 -pgrep
也没有找到它. 有更好的方法吗?