我的服务器上正在运行一个脚本,例如test.sh
。我使用以下命令执行了它 -
nohup test.sh
现在我想将一个输入传递quit
给该脚本,以便它可以正常终止(该脚本会生成许多临时文件,如果您传递该quit
命令,它会删除所有临时文件然后终止自身)
我知道该进程的 PID,但是如何将命令传递给该 PID?
答案1
如果它是一个 bash 脚本,您可以使用信号。
例如,此脚本将捕获信号 SIGUSR1,进行清理并退出。如果没有收到信号,它将在 60 秒后结束:
#!/bin/bash
function graceful_exit()
{
echo "Graceful exit..."
# your cleanup commands
exit 0
}
trap graceful_exit USR1
sleep 30 & wait $!
echo "Normal exit"
因此,运行脚本:
$ nohup script.sh
kill
然后,使用您所说的 PID发送 SIGUSR1 信号:
$ kill -SIGUSR1 PID