1. 开启监听端口的程序时,查看是否开启成功(该例子监听8983端口)

    #动态显示[|][/][-][\]
    function spinner() {
    local pid=$1
    local delay=0.5
    local spinstr='|/-\'
    while [ "$(ps aux | awk '{print $2}' | grep -w $pid)" ]; do
    local temp=${spinstr#?} #'\#'从字符串开头删除匹配subString,#?删除第一个字符
    printf " [%c] " "$spinstr"
    local spinstr=$temp${spinstr%"$temp"} #拼出一个新的字符串:删除第一个字符,把该字符加到被删字符串的后面。%:从结尾删除匹配到的字符串
    sleep $delay
    printf "\b\b\b\b\b\b" # \b退格键,删除显示的字符
    done
    printf " \b\b\b\b"
    } if hash lsof 2>/dev/null ; then # hash 查看系统中是否有该命令
    echo -n "Waiting up to 30 seconds to see Solr running on port $SOLR_PORT"
    # Launch in a subshell to show the spinner
    (loops=0
    while true
    do
    running=`lsof -PniTCP:8983 -sTCP:LISTEN`
    # 循环6次,每次sleep5秒,执行6次lsof
    if [ -z "$running" ]; then
    if [ $loops -lt 6 ]; then
    sleep 5
    loops=$[$loops+1]
    else
    echo -e "Still not seeing Solr listening on $SOLR_PORT after 30 seconds!"
    tail -30 "$SOLR_LOGS_DIR/solr.log"
    exit # subshell!
    fi
    else
    SOLR_PID=`ps auxww | grep start\.jar | grep -w 8983 | grep -v grep | awk '{print $2}' | sort -r`
    echo -e "\nStarted Solr server on port $8983 (pid=$SOLR_PID). Happy searching!\n"
    exit # subshell!
    fi
    done) &
    spinner $! # $!可以返回岛控制台
    else
    echo -e "NOTE: Please install lsof as this script needs it to determine if Solr is listening on port $SOLR_PORT."
    sleep 10
    SOLR_PID=`ps auxww | grep start\.jar | grep -w 8983 | grep -v grep | awk '{print $2}' | sort -r`
    echo -e "\nStarted Solr server on port $SOLR_PORT (pid=$SOLR_PID). Happy searching!\n"
    return;
    fi

shell脚本摘要的更多相关文章

  1. LinuxShell脚本——认识Shell脚本

    LinuxShell脚本——认识Shell脚本 摘要:本文主要介绍了Shell脚本的一些基本知识. 什么是Shell脚本 shell脚本是利用shell的功能所写的一个程序,这个程序是使用纯文本文件, ...

  2. Shell脚本编程的常识

    (这些往往是经常用到,但是各种网络上的材料都语焉不详的东西,个人认为比较有用) 七种文件类型 d            目录                                       ...

  3. 让你提前知道软件开发(22):shell脚本文件操作

    文章1部分 再了解C语言 shell脚本中的文件操作 [文章摘要] 编写shell脚本时,经常会涉及到对文件的操作,比方从文件里读取一行数据.向文件追加一行数据等. 完毕文件读写操作的方法有非常多,了 ...

  4. Shell 脚本常用命令

    Shell脚本是Linux开发工作中常用的工具,但是我一直没有找到一个适合自己的简明扼要的HandBook.在工作过程中整理了一下,贴在这里已备查看. 1           Shell中的特殊符号 ...

  5. shell脚本编程常识

    (这些往往是经常用到,但是各种网络上的材料都语焉不详的东西,个人认为比较有用) 七种文件类型 d            目录                                       ...

  6. [拾 得] 一枚迷人的贝壳 SHELL / Linux | shell 脚本初步入门

    坚持知识分享,该文章由Alopex编著, 转载请注明源地址: http://www.cnblogs.com/alopex/   索引: 什么是shell shell的分类 shell脚本的执行方式   ...

  7. 【转】shell脚本实现多台服务器自动巡检--可参考学习

    shell脚本实现多台服务器自动巡检   摘要:           运维服务一个项目二十多台(或者多台)服务器,每天要做服务器的性能巡检工作是查看服务器的CPU.内存.磁盘空间是否在正常值范围内.像 ...

  8. 使用Shell脚本对Linux系统和进程资源进行监控

    ShellLinux脚本 摘要:Shell语言对于接触Linux的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口.本文我们以Bash做为实例总结了使用Shell对系统和进 ...

  9. SHELL脚本编程的常识和VI常用技巧

    来源:http://mprc.pku.edu.cn/mentors/training/TrainingCourses/material/ShellProgramming.HTM#_Toc3751808 ...

随机推荐

  1. 在JSP页面下使用AJAX实现用户名存在的检测

    <script type="text/javascript">     function init(){         document.getElementById ...

  2. 1-1 Java简介

    主要内容: <1>Java平台应用 <2>核心概念:JVM.JDK.JRE <3>搭建Java开发环境 <4>使用工具开发Java程序 <5> ...

  3. 自我提升mysql

    1.某字段更新 自增 1 update table set a=a+1 2.修改某一字段的数据类型 alter table "tablename" modify  "co ...

  4. linux内核启动流程[转]

    启动流程一览 既然启动是很严肃的一件事,那我们就来了解一下整个启动的过程吧! 好让大家比较容易发现启动过程里面可能会发生问题的地方,以及出现问题后的解决之道! 不过,由於启动的过程中,那个启动管理程序 ...

  5. linux下crontab定时执行本地脚本和定时访问指定url

    https://my.oschina.net/u/2487410/blog/683308 使用linux curl命令讲解:http://www.linuxdiyf.com/linux/2800.ht ...

  6. 论文笔记之:Active Object Localization with Deep Reinforcement Learning

    Active Object Localization with Deep Reinforcement Learning ICCV 2015 最近Deep Reinforcement Learning算 ...

  7. gprof使用介绍

    gprof 1.1      简介 gprof实际上只是一个用于读取profile结果文件的工具.gprof采用混合方法来收集程序的统计信息,他使用检测方法,在编译过程中在函数入口处插入计数器用于收集 ...

  8. 大白话系列之C#委托与事件讲解(二)

    什么是事件?EVENT?点击事件?加载事件?一连串的模糊的概念冲击着我们弱小的脑袋 那我们首先来看一下比较正统的感念吧: 事件是类在发生其关注的事情时用来提供通知的一种方式. 事件的发生一般都牵扯2个 ...

  9. easyUI之Form(表单)组件

    一.对于在easyui中使用的组件,具有输入.输出功能的使用<input>标签,其它的使用<div>标签. 二.对于<input>标签,在使用过程,将name属性和 ...

  10. Python Queue实现生产与消费

    Python Queue模块详解 from:https://blog.linuxeye.com/334.html Python中,队列是线程间最常用的交换数据的形式.Queue模块是提供队列操作的模块 ...