Mysql 即使在后台启动,终端关闭时脚本也会中断
因此,我使用典型的nohup语法启动下面的脚本:Mysql 即使在后台启动,终端关闭时脚本也会中断,mysql,bash,nohup,Mysql,Bash,Nohup,因此,我使用典型的nohup语法启动下面的脚本: nohup ./script & 下面的日志输出的一部分是当我有一个临时Internet连接,并且我的终端窗口被锁定,迫使我手动关闭它们时显示的内容。问题解决后,我重新登录并从日志中看到以下输出: 日志输出:(来自results2.Log) 脚本内容: #!/bin/bash first=5759776 last=15759776 while [ $first -lt 73843165 ]; do mysql -u -p??
nohup ./script &
下面的日志输出的一部分是当我有一个临时Internet连接,并且我的终端窗口被锁定,迫使我手动关闭它们时显示的内容。问题解决后,我重新登录并从日志中看到以下输出:
日志输出:(来自results2.Log)
脚本内容:
#!/bin/bash
first=5759776
last=15759776
while [ $first -lt 73843165 ]; do
mysql -u -p??????? db -vvv -e "UPDATE table where pc.id between $first and $last;" >> results2.log
((first=first+10000000))
((last=last+10000000))
done
所以基本上有两个问题:
在脚本中添加陷阱处理程序以捕获信号,如:
#!/bin/bash
trap "echo 'trap recieved';" SIGHUP SIGINT SIGTERM
first=5759776
last=15759776
....
一个进程可以接收信号来通知他们一些事件。您可以使用kill命令发送信号。其他进程也向进程发送信号,如父进程。用这个命令你可以捕捉到信号。如果你没有抓住他们,这个过程就会终止。唯一的信号是9,您无法捕捉到它,比如:kill-9processid 你想对更新做什么?该问题中没有设置字段=xx,与查询语法无关。我只是缺少日志文本。你能分享一下这会做什么吗?@user3299633-我已经在我的答案中添加了它
#!/bin/bash
trap "echo 'trap recieved';" SIGHUP SIGINT SIGTERM
first=5759776
last=15759776
....