技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> Linux --> 后台脚本挂起的几种原因

后台脚本挂起的几种原因

浏览:2516次  出处信息

       或多或少我们都会在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. gen_tcp发送进程被挂起起因分析及对策    (阅读:36974)
  2. 关于请求被挂起页面加载缓慢问题的追查    (阅读:2610)
  3. 使用 SysRq 键安全重启挂起的 Linux    (阅读:1081)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
后一篇:Linux下的NFS >>
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1