IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

后台脚本挂起的几种原因

AnySQL.net 2009-10-11 00:06:58 累计浏览 3,602 次
本机暂存

       或多或少我们都会在crontab中放置几个定时任务, 这些任务的监控是个问题, 最严重的当属脚本执行到一半挂起, 大部份情况下还是由于脚本写得不够强壮, 要检查一下.

       我经历过以下三种情况下的挂起, 第一种是在调用sqlplus时, 由于连接信息不对, 导致第一次不能登录数据库, sqlplus处于等待输入密码的阶段, 引起脚本挂起. 解决方法如下, 使用"-L"选项禁止出现密码输入提示.

sqlplus -L -s "/ as sysdba" << EOF

    ...

    exit;

    EOF

       第二个情况是, 用ssh去远程主机执行命令时, 和远程主机的ssh没有打通, 导致ssh也出现等待输出密码阶段, 引起程序挂起. 解决方法也是用选择禁用密码输入.

ssh -n -a -q -o NumberOfPasswordPrompts=0 …

       第三种情况是, 由于网络路由问题, 或其他网络服务问题, 引起网络IO一直等待. 解决的方法是要选择可控性比较强的脚本语言, 比如在Perl中(Linux/Unix)中, 就可以通过信号中断机制来处理挂起情形.

eval {

     local $SIG{ALRM} = sub { die "???\\n" };

     alarm 20;

     可能会超时的任务代码;

     alarm 0;

    };

       有其他的情况, 请共享出来, 好让大家少走弯路, 助人为快乐之本.

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. Linux shell脚本使用while循环执行ssh的注意事项 (累计阅读 8,183)
  2. Bash如何取得当前正在执行的脚本的绝对路径? (累计阅读 5,998)
  3. 较安全的rm脚本 (累计阅读 5,917)
  4. xargs命令少为人知的细节 (累计阅读 5,652)
  5. 一句话crontab实现防ssh暴力破解 (累计阅读 4,750)
  6. ubuntu定时执行任务crontab的使用 (累计阅读 4,580)
  7. crontab异常,无法自动运行 (累计阅读 4,546)
  8. sed命令使用 (累计阅读 4,394)
  9. 分享一个固定时间自动更新svn的简单shell脚本 (累计阅读 4,252)
  10. linux下计划任务crontab学习笔记 (累计阅读 4,137)