精华内容
下载资源
问答
  • 目的:WorkstationTimeService.exe 系统服务安装设计了一个安装脚本,安装系统服务,然后启动服务。 安装该脚本必须使用管理员权限。 运行结果如下: 可以看到当前运行的目录是系统system32目录...

    安装系统服务,必须使用到系统管理员权限才能进行安装注册。运行bat批处理安装脚本,需要将bat的运行目录切换到脚本文件所在的目录。这是可以使用命令:cd /d %~dp0
    目的:为WorkstationTimeService.exe 系统服务安装设计了一个安装脚本,安装系统服务,然后启动服务。在这里插入图片描述
    安装该脚本必须使用管理员权限。
    在这里插入图片描述
    运行的结果如下:
    在这里插入图片描述
    可以看到当前运行的目录是系统的system32目录,必须将当前运行目录切换到安装脚本的所在目录。需要在脚本最前面添加一行:cd /d %~dp0
    在这里插入图片描述
    运行结果如下:
    在这里插入图片描述
    cd /d %~dp0命令是切换运行目录到脚本所在的目录。
    参数解释1:关于“/d”参数
    关于cd的/d参数,在cmd中敲入cd /? ,可以看到/d参数的解释如下:
    使用 /D命令行开关,除了改变驱动器的当前目录之外,还可改变当前驱动器。
    参数解释2:关于“ %~dp0 ”的批处理命令的详细解释
    %~dp0 “d”为Drive的缩写,即为驱动器,磁盘、“p”为Path缩写,即为路径,目录。
    选项语法:
    ~0 - 删除任何引号("),扩充%0,
    %~d0 - 仅将%0扩充到一个驱动器号,
    %~p0 - 仅将%0扩充到一个路径。

    展开全文
  • linux脚本监控nginx服务并设置自动启动一、 编写脚本nginx_check.sh二、设置定时任务 一、 编写脚本nginx_check.sh 本次nginx通过源代码编译...脚本所在目录:/etc/nginx 日志所在目录:/etc/nginx/nginx.check.lo

    linux脚本监控nginx服务并设置自动启动

    一、 编写脚本nginx_check.sh

    1. 本次nginx通过源代码编译安装,nginx运行程序所在位置为:/usr/local/nginx/sbin/nginx

    2. nginx使用的端口是8080,通过判断端口8080是否存在,从而判断nginx是否正常运行,如果服务停止,则启动nginx

    3. 脚本所在目录:/etc/nginx

    4. 日志所在目录:/etc/nginx/nginx.check.logs/

    5. 编写脚本:vim nginx_check.sh,脚本内容如下:

      vim nginx_check.sh
      
      #!/bin/bash
      date=`date +%Y-%m-%d`
      date_time=`date +%Y-%m-%d_%H:%M:%S`
      logs_back=/etc/nginx/nginx.check.logs
      logs_file=$logs_back/$date.nginx.check.logs
      mkdir -p /etc/nginx/nginx.check.logs
      touch $logs_file
      nginx_port=`netstat -nlt |grep 8080 |awk '{print $4}'| cut -d : -f 2`
      echo ""  >> $logs_file
      echo "------------------Time Now: $date_time--------------------" >> $logs_file 
      echo "nginx_port:$nginx_port" >> $logs_file
      if [ "$nginx_port" = "8080" ];then
      	echo "------------------Time Now: $date_time--------------------" >> $logs_file 
      	echo "------------------ps -ef |grep nginx --------------------" >> $logs_file 
      	ps -ef |grep nginx >> $logs_file
      	echo "------------------result------------------" >> $logs_file
      	echo 'nginx server is running!!' >> $logs_file
      	echo "------------------result------------------" >> $logs_file
      else
      	echo "------------------Time Now: $date_time--------------------" >> $logs_file 
      	echo "------------------result------------------" >> $logs_file
      	echo 'Nginx server is stopped!!'  >> $logs_file
      	echo "------------------result------------------" >> $logs_file
      	echo '------------------start nginx : /usr/local/nginx/sbin/nginx------------------' >> $logs_file
      	/usr/local/nginx/sbin/nginx >> $logs_file
      	nginx_start_port=`netstat -nlt |grep 8080 |awk '{print $4}'| cut -d : -f 2`
      	echo "nginx_start_port:$nginx_start_port" >> $logs_file
      	if [ "$nginx_start_port"="8080" ];then
      		echo "------------------Time Now: $date_time--------------------" >> $logs_file 
      		echo "------------------ps -ef |grep nginx --------------------" >> $logs_file 
      		ps -ef |grep nginx >> $logs_file
      		echo "------------------result------------------" >> $logs_file
      		echo 'Nginx service started Successfully!' >> $logs_file
      		echo "------------------result------------------" >> $logs_file
      	else
      		echo "------------------Time Now: $date_time--------------------" >> $logs_file 
      		echo "------------------result------------------" >> $logs_file
      		echo 'Nginx service started Failed!' >> $logs_file
      		echo "------------------result------------------" >> $logs_file
      	fi
      fi
      
      
    6. 设置脚本权限:chmod 777 nginx_check.sh

      chmod 777 nginx_check.sh
      

      二、设置定时任务

      1. 使用crontab定时任务,使用root用户,编写定时任务,该任务每隔两分钟执行一次
        crontab -e
        
      2. 添加内容
        */2 * * * * sh /etc/nginx/nginx_check.sh
        
        在这里插入图片描述
      3. 查看日志:
        cat nginx.check.logs/2020-06-10.nginx.check.logs
        
        重启nginx服务器日志:
        在这里插入图片描述
        nginx服务运行中日志:
        在这里插入图片描述
    展开全文
  • # Java程序主体所在的目录,即classes上一级目录 APP_NAME=teleinfo-doi-web.jar # JVM启动参数 # -server:一定要作为第一个参数,多个CPU时性能佳 # -Xloggc:记录GC日志,建议写成绝对路径,如此便可在任意...

    搭建项目

    • src
      • bin
        • run.sh
      • main
      • pom.xml

    配置pom文件

    <build>
            <finalName>${project.artifactId}</finalName>
            <plugins>
                <!--拷贝依赖 copy-dependencies-->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>copy-dependencies</id>
                            <phase>package</phase>
                            <goals>
                                <goal>copy-dependencies</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>
                                    ${project.build.directory}/deploy/lib/
                                </outputDirectory>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <!-- 拷贝资源文件 copy-resources-->
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>copy-resources</id>
                            <phase>package</phase>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <configuration>
                                <resources>
                                    <resource>
                                        <directory>src/bin</directory>
                                    </resource>
                                </resources>
                                <outputDirectory>${project.build.directory}/deploy/bin</outputDirectory>
                            </configuration>
                        </execution>
                        <execution>
                            <id>copy-classes</id>
                            <phase>package</phase>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <configuration>
                                <resources>
                                    <resource>
                                        <directory>${project.build.directory}/classes</directory>
                                    </resource>
                                </resources>
                                <outputDirectory>${project.build.directory}/deploy/classes</outputDirectory>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    

    配置启动脚本run.sh

    • 创建脚本run.sh,内容如下
    • 修改MAIN_CLASS为启动类名称

    常用执行命令
    ./run.sh start 启动
    ./run.sh stop 停止
    ./run.sh restart 重启
    ./run.sh status 查看启动状态

    #!/bin/bash
    
    # 根目录
    PACKAGE_HOME=$(cd "$(dirname "$0")";cd ..;pwd)
    
    # Java程序主体所在的目录,即classes的上一级目录
    MAIN_CLASS=cn.teleinfo.bussiness.embed.NbmsWebApp
    
    # PID文件位置
    PID_LOCATION=$PACKAGE_HOME/bin/.pid
    PID_LOCAL=0
    
    # 日志的默认输出目录
    LOG_DIR=$PACKAGE_HOME/logs
    LOG_BASE_NAME=debug.log
    
    # JVM启动参数
    # -server:一定要作为第一个参数,多个CPU时性能佳
    # -Xloggc:记录GC日志,建议写成绝对路径,如此便可在任意目录下执行该shell脚本
    JAVA_OPTS=${JVM_OPTS:-"-server -Xms1024m -Xmx2048m -Xloggc:$LOG_DIR/gc.log"}
    
    # classpath
    CLASSPATH="${PACKAGE_HOME}/classes:${PACKAGE_HOME}/lib/*"
    
    # 初始化全局变量,用于标识交易前置系统的PID(0表示未启动)
    tradePortalPID=()
    
    # 获取Java应用的PID
    # ------------------------------------------------------------------------------------------------------
    # 说明:通过JDK自带的jps命令,联合Linux中的grep命令,可以准确查找到Java应用的PID
    #       [jps -l]表示显示Java主程序的完整包路径
    #       awk命令可以分割出PID($1部分)及Java主程序名称($2部分)
    # 例子:[$JAVA_HOME/bin/jps -l | grep $MAIN_CLASS]命令执行,会看到[5775 com.cucpay.tradeportal.MainApp]
    # 另外:这个命令也可以取到程序的PID-->[ps aux|grep java|grep $MAIN_CLASS|grep -v grep|awk '{print $2}']
    # ------------------------------------------------------------------------------------------------------
    function getTradeProtalPID(){
        tradePortalPID=(`ps x | grep $MAIN_CLASS | grep -v grep | awk '{print $1}'`)
    }
    
    # 启动Java应用程序
    # ------------------------------------------------------------------------------------------------------
    # 1、调用getTradeProtalPID()函数,刷新$tradePortalPID全局变量
    # 2、若程序已经启动($tradePortalPID不等于0),则提示程序已启动
    # 3、若程序未被启动,则执行启动命令
    # 4、启动命令执行后,再次调用getTradeProtalPID()函数
    # 5、若步骤4执行后,程序的PID不等于0,则打印Success,反之打印Failed
    # 注意:[echo -n]表示打印字符后不换行
    # 注意:[nohup command > /path/nohup.log &]是将作业输出到nohup.log,否则它会输出到该脚本目录下的nohup.out中
    # ------------------------------------------------------------------------------------------------------
    function startup(){
        getTradeProtalPID
        if [ ! -d $LOG_DIR ]; then
            mkdir -p $LOG_DIR
        fi
        echo "==============================================================================================="
        if [ ${#tradePortalPID[@]} -ne 0 ]; then
            read -t 5 -p "$MAIN_CLASS already started(PID=${tradePortalPID[*]}), do want need create a new server? [y/n]" flag
            case $flag in 
                [yY]*)
                    rm -f $PID_LOCATION
                    echo -n "Starting $MAIN_CLASS"
                    nohup java $JAVA_OPTS -classpath $CLASSPATH $MAIN_CLASS >/dev/null 2>&1 & echo $! > $PID_LOCATION
                    PID_LOCAL=`head -n +1 $PID_LOCATION`
                    echo "(PID=$PID_LOCAL)...[Success]"
                    echo "==============================================================================================="
                    sleep 1
                    tail -f $LOG_DIR/$LOG_BASE_NAME
                    ;;
                [nN]*)
                        echo "[Canceld]"
                        echo "==============================================================================================="
                ;;
                *)
                        echo "please enter : y or n"
                        echo "==============================================================================================="      
                ;;
            esac
        else
            nohup java $JAVA_OPTS -classpath $CLASSPATH $MAIN_CLASS >/dev/null 2>&1 & echo $! > $PID_LOCATION
            PID_LOCAL=`head -n +1 $PID_LOCATION`
            echo "(PID=$PID_LOCAL)...[Success]"
            echo "==============================================================================================="
            sleep 1
            tail -f $LOG_DIR/$LOG_BASE_NAME
        fi
    }
    
    function shutdown(){
        getTradeProtalPID
        echo "==============================================================================================="
        if [ -f "$PID_LOCATION" ];then
            PID_LOCAL=`head -n +1 $PID_LOCATION`
        fi
        if [ $PID_LOCAL -ne 0 ]; then
            echo -n "Stopping $MAIN_CLASS(PID=$PID_LOCAL) waiting 5s ..."
            kill $PID_LOCAL
            sleep 5
            getTradeProtalPID
            if echo "${tradePortalPID[@]}" | grep -w "$PID_LOCAL" &>/dev/null; then
                echo "[Failed]"
                echo "==============================================================================================="
                shutdown
            fi
            rm -f $PID_LOCATION
            echo "[Success]"
            echo "==============================================================================================="
        else
            if [ ${#tradePortalPID[@]} -ne 0 ]; then
                read -t 5 -p "$MAIN_CLASS already started(PID=${tradePortalPID[*]}), do want stop all server? [y/n]" flag
                case $flag in 
                    [yY]*)
                        for item in ${tradePortalPID[*]}
                        do
                            echo "[Kill PID=$item waiting 5s ...]"
                            kill $item
                            sleep 5
                        done
                        echo "==============================================================================================="
                        shutdown
                    ;;
                    [nN]*)
                        echo "[Canceld]"
                        echo "==============================================================================================="
                    ;;
                    *)
                        echo "please enter : y or n"
                        echo "==============================================================================================="      
                    ;;
                esac
            else 
                rm -f $PID_LOCATION
                echo "[Success]"
                echo "==============================================================================================="
            fi
        fi
    }
    
    function docker(){
        if [ ! -d $LOG_DIR ]; then
    	    mkdir $LOG_DIR
    	fi
        nohup java $JAVA_OPTS -classpath $CLASSPATH $MAIN_CLASS >/dev/null 2>&1 & echo $! > $PID_LOCATION
    }
    
    function status(){
        if [ -f "$PID_LOCATION" ];then
            PID_LOCAL=`head -n +1 $PID_LOCATION`
        fi
        echo "==============================================================================================="
        if [ $PID_LOCAL -ne 0 ]; then
            echo "$MAIN_CLASS already started(PID=$PID_LOCAL)"
            echo "==============================================================================================="
            tail -f $LOG_DIR/$LOG_BASE_NAME
        else
            echo "$MAIN_CLASS is not running"
            echo "==============================================================================================="
        fi
    }
    
    case "$1" in
      start)
        startup
      ;;
    
      stop)
    	shutdown
      ;;
    
      status)
      	status
        ;;
    
      docker)
          docker
       ;;
    
      restart)
        shutdown
        startup
      ;;
    
      *)
        echo "please use : ./run.sh {start|stop|restart|status}"
      ;;
    esac
    exit 0
    
    

    打包部署

    1. 执行打包命令

      mvn clean package -Dmaven.test.skip=true 
      
    2. 打包后将deploy文件夹部署即可
      部署的文件

    展开全文
  • 设置启动服务, 因为startWebLogic.sh必须在所在的目录下执行才能生效(cd /usr/services/bea/user_projects/domains/mydomain ) 所以如果想在非当前目录下执行,则需要另外建立一个脚本来执行它 service...
    设置为自启动服务, 因为startWebLogic.sh必须在所在的目录下执行才能生效(cd

    /usr/services/bea/user_projects/domains/mydomain )

    所以如果想在非当前目录下执行,则需要另外建立一个脚本来执行它
       service.sh 内容:(加上可执行权限 chmod  +x  servic.sh )

       cd /usr/bea/wlserver6.1/config/mydomain
       . startWebLogic.sh& > null
       cd –

       修改 /etc/rc.d/rc.local 文件, 在末尾加上
       /usr/services/bea/user_projects/domains/mydomain/service.sh&

    由于自启动不在xwindow下运行, 所以java处理图片时会有X11的异常, 解决方法是, 在java运行参数上

    -Djava.awt.headless=true

    转载于:https://www.cnblogs.com/josson/archive/2005/09/28/245921.html

    展开全文
  • linux服务启动

    2011-05-02 01:18:13
    linux中每个服务都有相应运行脚本,可用于设置启动...各运行级别的脚本目录所在位置:/etc/rc.d当中可以看到以0~6加在RC后面,构成了相应运行级别服 务脚本目录.可进入相应级别的脚本目录,查看其有什么设置....
  • 针对上一步生成的日志,我们的启动脚本为: from visualdl.server import app app.run(logdir="./log") 在使用任意一种方式启动VisualDL面板后,打开浏览器访问VisualDL面板,即可查看日志的可视化结果,如图: ...
  • 解决方法:进入 计算机管理 服务和应用程序 INTERNET信息服务 网站 默认网站,找到 工程所在目录,点击鼠标右键,进入属性 菜单,目录 应用程序设置 应用程序名 创建按钮;执行权限 选择 脚本和可执行文件 可能...
  • Shell脚本

    2020-09-09 09:24:00
    1.新建一个文件test.sh,扩展名sh(sh代表shell) 2.打印 Hello World echo "Hello World !" 3.启动Linux上Java包 nohup java -jar xxx.jar --spring.profiles.active=prod &...#启动命令所在目录 HOME='/ho
  • 所有的服务脚本 都写在"/etc/rc.d/init.d"中,脚本名称和服务器名称相对应,大都有说明,大家可自己查看,各运行级别的脚本目录所在位置:/etc/rc.d当中可以看到以0~6加在RC后面,构成了相应运行级别服务脚本目录....
  • 其内容如下: (注意: /temp/ 要删除文件所在的目录 0.00347222 每5分钟执行一次含义, 那个+后面是 数字是天为单位,如 : 1 标示 1天执行一次) find /nas/share/file/upload/histran/ -type f -mmin +5...
  • 在RHEL7/CENTOS7/SUSE12及最新Ubuntu等linux发行版本中, 均使用systemd进行服务控制管理(Service Control Manager)。...###systemd需要两个配置文件目录为 1,service 文件所在位置(CentOS7/RHEL7)
  • 但如果是通过脚本启动,则脚本可能会修改当前目录,这时进程真正当前目录就会与当初执行脚本所在目录不同。这时可以查看"/proc//cwd"符号链接目标来确定进程真正当前目录地址。通过系统服务启动的进程也可通过...
  • b+ v+ T d/ R在活动目录中每个对象都有一个标识名,标识名确定了对象所在的域和可以找到对象完整路径。比如,典型标识名包括: ) v( ^# h2 Q% P ) k( @' h3 e4 k* G+ s" i7 `CN=TOM,OU=Manager,DC=Tech,DC=...
  • 应用服务器方面

    2014-03-20 15:25:27
     答:在启动Weblogic的脚本中(位于所在Domian对应服务器目录startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以调整最小内存32M,最大200MEJB需直接实现它业务接口或Home接口吗,请简述理由。...
  • 应用服务器方面

    2009-12-25 16:24:00
    答:在启动Weblogic的脚本中(位于所在Domian对应服务器目录startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以调整最小内存32M,最大200MEJB需直接实现它业务接口或Home接口吗,请简述理由。...
  • 迷你版SQL2000服务器

    2015-01-23 17:32:37
    ^优化启动服务的代码,默认实例或指定实例运行时更加稳定; ^优化数据库页右键菜单显示,允许对系统库进行操作。 1.1.0 +增加同个目录只允许运行一个实例的自动处理; *修正开启服务过程中碰到异常时,没有修改...
  • 但如果是通过脚本启动,则脚本可能会修改当前目录,这时进程真正 当前目录就会与当初执行脚本所在目录不同。若程序调用了seteuid()/setegid()改变了进程有效用户或 组,则在默认情况下系统不会这些进程生成...
  • 启动Weblogic 的脚本中(位于所在Domian 对应服务器目录startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以调整最小内存32M,最大200M。
  • 启动Weblogic的脚本中(位于所在Domian对应服务器目录startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以调整最小内存32M,最大200M2、 如何设定weblogic启动模式(开发模式)与产品发布模式...
  • 启动Weblogic的脚本中(位于所在Domian对应服务器目录startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以调整最小内存32M,最大200M2、 如何设定weblogic启动模式(开发模式)与产品发布...
  • weblogic几个基础问题

    千次阅读 2005-04-18 11:16:00
    启动Weblogic的脚本中(位于所在Domian对应服务器目录startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以调整最小内存32M,最大200M2、 如何设定weblogic启动模式(开发模式)与产品发布...
  • 启动Weblogic的脚本中(位于所在Domian对应服务器目录startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以调整最小内存32M,最大200M
  • 如何给weblogic指定大小内存? (这个问题不作具体...在启动Weblogic的脚本中(位于所在Domian对应服务器目录startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以调整最小内存32M,最大200M ...
  • weblogic几个基础问题document.title="weblogic几个... 在启动Weblogic的脚本中(位于所在Domian对应服务器目录startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以调整最小内存32M,最大200M2、 
  • WebLogic及其他

    2019-10-03 00:39:38
     在启动WebLogic的脚本中(位于所在Domian对应服务器目录startServerName),增加set MEM_ARGS= -Xms32m -Xmx200m,可以调整最小内存32M,最大200M。 如何设定WebLogic启动模式(开发模式)与产品发布...

空空如也

空空如也

1 2 3 4 5 6
收藏数 113
精华内容 45
关键字:

服务的启动脚本所在目录为