精华内容
下载资源
问答
  • 我们经常部署 SpringBoot 应用,一般将应用打包成 jar 包的方式上传至服务器,通过命令启动程序,我们每次都需要去手动敲命令来控制程序的启停,容易出错,我们可以通过脚本的方式,记住一些常用的命令 1、后端启动 ...

    我们经常部署 SpringBoot 应用,一般将应用打包成 jar 包的方式上传至服务器,通过命令启动程序,我们每次都需要去手动敲命令来控制程序的启停,容易出错,我们可以通过脚本的方式,记住一些常用的命令

    1、后端启动

    nohup java -jar test-1.0.jar > nohup.out 2>&1 &
    

    启动后,并将日志输出到 nohup.out 文件中

    2、修改配置启动

    nohup java -jar test-1.0.jar --server.port=8081 > nohup.out 2>&1 &
    

    这样,我们就修改了该应用的端口号为:8081

    3、停止应用

    PID=$(ps -ef | grep test-1.0.jar | grep -v grep | awk '{ print $2 }')
    if [ -z "$PID" ]
    then
    echo Application is already stopped
    else
    echo kill -9 $PID
    kill -9 $PID
    fi
    

    基本思想:找出 jar 包的进程号,等到程序停止后,杀死进程号

    4、查看日志

    tail -f nohup.out
    

    5、运行脚本

    • 1、启动应用
    ./startup.sh
    
    • 2、查看日志
    ./log.sh
    
    • 3、停止应用
    ./shutdown.sh
    

    如您在阅读中发现不足,欢迎留言!!!

    展开全文
  • Java执行脚本命令

    千次阅读 2018-06-14 16:21:11
    //初始化脚本命令 String commond = ""; Process process = null; //脚本执行返回值 boolean flag = false; try { //开始执行脚本 process = Runtime.getRuntime().exec(commond); //这是jdk1.8的wait...
    //初始化脚本命令
    String commond = "";
    Process process = null;
    //脚本执行返回值
    boolean flag = false;
    try {
    	//开始执行脚本
    	process = Runtime.getRuntime().exec(commond);
    	//这是jdk1.8的waitFor方法,带有时间戳防止阻塞
    	if(this.waitFor(1, TimeUnit.MINUTES, process)) {
    		//获取执行错误流
    		InputStream  errin = process.getErrorStream();
    		//获取响应流
    		InputStream in = process.getInputStream();
    		StringBuilder errBuilder = new StringBuilder();
    		while(errin.available() > 0) {
    			Character c = new Character((char)errin.read());
    			errBuilder.append(c);
    		}
    		StringBuilder inBuilder = new StringBuilder();
    		while(in.available() > 0) {
    			Character c = new Character((char)in.read());
    			inBuilder.append(c);
    		}
    		//判断脚本返回流中是否成功  这部分取决于自定义脚本返回的内容
    		if(!inBuilder.toString().contains("Success") && inBuilder.toString().contains("failed")) {
    			flag = true;
    		}
    		//获取脚本执行结果
    		int i = 0;
    		loop : while(i < 3) {
    			Thread.sleep(1000);
    			//0表示正常执行结束
    			int code = process.exitValue();
    			if(code == 0) {
    				break loop;
    			} else {
    				i++;
    			}
    		}
    		if(i >= 3) {
    			alarmLogger.error("调用脚本失败 请检查脚本配置");
    			ar.setResultCode(-6);
    			ar.setResultMessage("调用脚本发生异常");
    			ar.setResultFlag(false);
    		}
    		if(flag) {
    			//这是调用脚本成功 脚本中校验的东西失败的结果
    			ar.setResultCode(5);
    			ar.setResultMessage("具体业务失败");
    			ar.setResultFlag(false);
    		}
    	} else {
    		alarmLogger.error("调用脚本超时异常");
    		ar.setResultCode(-5);
    		ar.setResultMessage("调用脚本超时异常");
    		ar.setResultFlag(false);
    	}
    } catch (Exception e) {
    	alarmLogger.error("调用脚本发生异常");
    	ar.setResultCode(-5);
    	ar.setResultMessage("调用脚本发生异常");
    	ar.setResultFlag(false);
    	} finally {
    		if(process != null) {
    			process.destroy();
    		}
    	}
    public boolean waitFor(long timeout, TimeUnit unit, Process process)
    	        throws InterruptedException
        {
            long startTime = System.nanoTime();
            long rem = unit.toNanos(timeout);
    
            do {
                try {
    				//如果脚本没执行完 就会产生IllegalThreadStateException通过抓取异常来判断是否执行成功
                	process.exitValue();
                    return true;
                } catch(IllegalThreadStateException ex) {
                    if (rem > 0)
                        Thread.sleep(
                            Math.min(TimeUnit.NANOSECONDS.toMillis(rem) + 1, 100));
                }
                rem = unit.toNanos(timeout) - (System.nanoTime() - startTime);
            } while (rem > 0);
            return false;
        }
    以上为Java执行脚本的代码示例。

    展开全文
  • Qt下编码调用Linux的Shell脚本命令

    千次阅读 2019-03-21 17:20:55
    Linux下编写Qt程序,常会碰到需要执行Shell脚本命令的时候。因为简单调用的一个脚本命令,可以大大简化功能实现的复杂度。 调用Shell脚本命令,Qt环境下常用两种方式: 1)使用QProcess开启一个进程,把脚本命令作为...

    引言

    Linux下编写Qt程序,常会碰到需要执行Shell脚本命令的时候。因为简单调用的一个脚本命令,可以大大简化功能实现的复杂度。
    调用Shell脚本命令,Qt环境下常用两种方式:
    1)使用QProcess开启一个进程,把脚本命令作为参数传递进去。
    2)使用Linux系统函数。
    不推荐使用系统函数,一是复杂度比较高;二是常常会阻塞进程;三是控制和数据交互不方便。所以本文以下内容都是讲述使用QProcess调用脚本命令的方法。

    单条指令调用

    用QProcess执行单条脚本指令的代码真的非常简洁,但要理解清楚,应至少掌握三点内容:阻塞与非阻塞、进程与线程、QProcess参数传递。
    一、阻塞与非阻塞
    但凡熟悉QProcess类的读者应该清楚,QProcess调用外部进程分为阻塞和非阻塞两类方式。

    1)QProcess::execute("xxx"); //阻塞方式
    2)QProcess process;
       process.start("xxx"); //非阻塞方式
    

    阻塞方式下,新开启的QProcess不执行完毕或中途退出,主进程就会一直等待,卡在那里而不做任何处理。
    而在非阻塞方式下,新开启的QProcess不会影响主进程中其它线程的运行。

    二、进程与线程
    进程比较好理解,一个应用程序就是一个进程,对应控制面板显示的内容。
    一个进程可以开启多个线程,通常在一个单独开启的线程中调用QProcess来开启一个新的进程,这样可以最大程度的使新开启的进程不影响主进程中的其它线程(包括主线程)。

    三、QProcess参数传递
    这里主要还是QProcess的用法。大致分为三步:1)生成一个进程;2)设置环境变量、运行参数;3)启动进程,等待执行。

    一个调用QProcess执行压缩文件的例子如下:

    bool SysResource::compressDir(const QString srcPath, const QString workPath, const QString zipfile)
    {
    	QProcess process; //生成进程
    	//设置环境变量、运行参数
    	process.setWorkingDirectory(workPath);
    	QStringList args;
    	args << "-mr" << zipfile << srcPath;
    	//启动进程,等待执行
    	process.start("zip", args);
    	if (!process.waitForFinished())
    	{
    		process.close();
    		return false;
    	}
    	process.close();
    	return true;
    }
    

    为了不阻塞当前调用的线程,需要把这个函数放在一个线程中。Qt下把函数放在线程的方法如下:

    QtConcurrent::run(this, &SysResource::Fuctionname);
    

    多条指令的调用

    多条指令调用有两种方法,一是用一个循环,等前一条指令执行完,发出finished()信号后执行下一条;二是把多条指令写在一个Shell Script中,调用这个脚本即可。这里强烈推荐使用第二种方法,因为QProcess无法识别Linux的管道命令等多种命令,而第二种方法完美规避这个问题。可以在QProcess启动后,使用qDebug()显示QProcess.arguments()和QProcess.errorString()来判断指令是否被QProcess识别正确。
    1)循环执行指令代码demo如下:

    //构造函数中
    QProcess *process = new QProcess;
    connect(process, SIGNAL(finished(int)), this, SLOT(doNextCommand()));
    
    //槽函数
    void SysResource::doNextCommand()
    {
    	ipRank++;
    	if (ipRank < 4)  //定义了Command[4]数组存放了4条指令
    	{
    		process->start(Command[ipRank]);
    	}
    	else
    	{
    		process->close();
    	}
    }
    

    2)调用外部脚本代码和单条指令类似,如下:

    QProcess process;
    QStringList args;
    args << "/home/LM/xxx.sh";
    process.start("sh", args);
    if (!process.waitForFinished())
    {
    	process.close();
    	return;
    }
    process.close();
    

    总结

    文中几种方法都是从编写的工程文件中节选而来,在发行版和ARM版的Linux系统中都得到了验证。欢迎和我交流讨论~

    展开全文
  • docker的一些启动的脚本命令

    千次阅读 2017-12-22 14:14:07
    docker的简单启动脚本命令

    docker的一些启动的脚本命令

    1:暂停以及删除docker的容器和镜像

    docker stop xx-server
    docker rm xx-server
    docker rmi xx-server

    2:将git上面的代码拉取下来,并进行编译

    git pull
    mvn clean install

    3:将docker容器中的端口映射到外面端口

    docker build –tag xx-server pwd

    docker run -d \
    –name xx-server \
    -p 2322:2322 \
    xx-server

    下面的-v则是将docker中的文件目录映射到外面

    docker run -d \

        --name elasticsearch  \
        -p 9200:9200 \
    -p 9300:9300 \
        -v `pwd`/config:/usr/share/elasticsearch/config \
        -v `pwd`/data:/usr/share/elasticsearch/data \
        -v `pwd`/plugins:/usr/share/elasticsearch/plugins \
        -v `pwd`/logs:/usr/share/elasticsearch/logs \
        elasticsearch
    
    展开全文
  • go语言之脚本命令的使用

    千次阅读 2017-06-19 14:17:25
    比如说我想在go项目启动的时候,也把java项目启动,那么我就可以把启动java项目的脚本命令放入到go项目中 go语言也为我们提供了执行脚本命令的包 “os/exec” 1.引入 "os/exec"包 2.在go项目main函数中执行 c...
  • vscode配置调试npm脚本命令小结

    千次阅读 2019-01-11 08:49:00
    N久之前,用过node-inspector进行调试node,这次希望能够使用vs code来进行调试开发,且是调试npm脚本命令。 步骤一:启动NPM脚本命令 package.json如上图,在终端中可执行 npm run mock   当需要...
  • WinHex脚本命令教程--中文版

    千次阅读 2017-01-20 17:11:17
    WinHex脚本命令教程–中文版 脚本命令适用的环境比较多。脚本文件中的注释以为双斜杠开头。脚本支持的最长255字符的参数。有疑点的地方是十六进制,文本字符串(甚至10进制数值)都可以作为参数,你可以使用引号...
  • 成功解决Git Bash运行脚本命令下载文件到默认C盘路径的问题 目录 解决问题 解决思路 解决方法 解决问题 解决Git Bash运行脚本命令下载文件到默认C盘路径的问题 1、默认下载到文件夹为 解决...
  • 最近租用了腾讯云的服务器,在Linux虚拟机下使用ssh命令登录很方便,但每次都要输密码,虽然也可以使用密钥免密登录,但这样不知为何使用scp命令又出现了一些问题,所以我想写一个脚本命令,直接运行登录。...
  • npm 可以在项目package.json里面自定义脚本命令 package.json文件 { "script":{ "dev": "webpack -w" } } package.json文件中的字段script的每一个属性都是一个自定义的脚本命令。 在命令行中可以通过执行npm ...
  • 脚本命令 @echo off start java -jar -Dfile.encoding=UTF-8 back-java-manager-0.0.1-SNAPSHOT.jar --spring.profiles.active=test exit
  • 在shell脚本中,运行shell脚本命令;在Python命令行中,运行Python代码。然而,“python hello.py”是一个脚本命令,不是python代码。 因此,退出python命令行,直接cd到hello.py所在目录,运行python hello.py,...
  • winhex脚本命令教程--中文版

    千次阅读 2016-08-25 17:27:26
    winhex脚本命令教程--中文版 脚本命令适用的环境比较多。脚本文件中的注释以为双斜杠开头。脚本支持的最长255字符的参数。有疑点的地方是十六进制,文 本字符串(甚至10进制数值)都可以作为参数,你可以使用...
  • linux--shell脚本常用脚本命令

    千次阅读 2018-06-14 22:39:03
    什么是shell?shell也是操作系统中的一个软件,他包含...脚本是一种解释型语言 ##命令需要解释器解释,运行效率慢用shell脚本保存执行动作用脚本判定命令的执行条件用脚本来实现动作的批量生产的执行1.diff 和pathdi...
  • 文员、网管必会技能:Windows命令行bat/cmd批处理脚本的编写应用之文件管理应用1.3.1bat脚本命令RENAME REN 重新命名文件 命令: RENAME REN= RENAMEREN [盘符:][路径]<旧文件名> <新文件名> 简单应用:...
  • windows脚本命令编写

    千次阅读 2019-03-22 11:35:57
    简单批处理内部命令简介 cmd文件和bat文件的区别:在本质上两者没有区别,都是简单的文本编码方式,都可以用记事本创建、编辑和查看。两者所用的命令行代码也是共用的,只是cmd文件中允许使用的命令要比bat文件多。...
  • Windows时间同步脚本命令

    万次阅读 2018-09-07 11:21:51
    除了麻烦的可视化操作方法,也可以用命令同步 net stop w32time w32tm /unregister w32tm /register net start w32time w32tm /resync pause 写出一个批处理脚本即可,pause只是为了看看过程,测试管理员权限可以...
  • SQL Server 2008R2执行大文件SQL脚本命令

    千次阅读 2019-04-28 19:16:26
    SQL Server 2008R2执行大文件SQL脚本命令  cd C:\Program Files\Microsoft SQL Server\110\Tools\Binn  sqlcmd -S . -U sa -P 123 -d test -i data.sql  参数说明:-S 服务器地址 -U 用户名 -P 密码 -d 数据库...
  • android应用程序执行shell脚本命令

    千次阅读 2014-06-16 15:51:24
    急问android应用程序如何执行shell脚本命令 跪求大神指点~! 小菜在做一个android应用程序,需要执行系统调用命令,然后我考虑将命令写在.sh脚本里,直接调用脚本执行。 但是调用一直不成功。 我具体用到了如下...
  • 批处理(Batch),也称为批处理脚本。它应用于DOS和Windows...文员、网管必会技能:Windows命令行bat/cmd批处理脚本的编写应用之文件管理应用1.1.1bat脚本命令MD MKDIR 创建目录 创建文件夹视频教程:http://edu.51...
  • shell脚本命令运行

    千次阅读 2019-03-25 08:44:25
    写sh脚本读取表头 [root@nhost21 mnt]# more zz.sh #!/bin/bash MM=`head -1 /mnt/daytime.csv` echo $MM > newFile echo $MM 运行sh脚本,得到结果 [jhadmin@nhost21 mnt]$ source zz.sh : ...
  • 在ubuntu 15.04 ~/目录已经建立bin文件夹,并把新编写的shell脚本,放在~/bin目录下,使用绝对目录时运行脚本文件,是可以运行的,但是在/usr/include/mysql目录下运行,脚本命令时,显示command not found ...
  • 在Java中执行脚本命令以及调用外部程序说明 一、Java中关于ProcessBuilder 和 Runtime 类的介绍 在Java中要想调用脚本或者其他程序必须通过ProcessBuilder 和 Runtime 类,以上两个类任选一个就行,关于他们的介绍...
  • Java运行脚本命令

    千次阅读 2018-08-30 16:41:54
    记录下通过Java命令来调用shell的方法,简单的记录下;在Java中有时候需要通过调用shell命令来完成对应的操作,之后返回执行的结果进行一些结果的解析,可以使用Runtime.getRuntime().exec()方法来执行shell命令,...
  • 在上节课我们演示了安卓手机投屏的基本参数设置操纵,本科我们演示安卓群控命令封装调用。 511遇见安卓手机投屏基本设置演示 https://blog.csdn.net/zcp528/article/details/119817130 511遇见安卓手机投屏群控...
  • mac 脚本命令打开新的终端 执行命令

    千次阅读 2019-07-10 23:26:00
    需求 自己写脚本 可能要开一个Terminal 来跑一个服务 我的方案是通过applescript 来实现的 applescript 可以自行百度 以启动一个node为例 go启动一个服务 func execCmd(command string){ cmd := exec.Command("/bin...
  • 在linux后台运行脚本命令和程序的方法大全

    万次阅读 多人点赞 2019-10-27 14:50:50
     linux提供了很多方法可以直接将普通的命令脚本、应用程序以后台的形式运行起来,这样就不会阻塞终端窗口的继续使用。常用的涉及后台执行的命令有十几多个,包括:&、ctrl+z、bg、fg、nohup、disown、...
  • Windows的cmd终端连接android手机运行adb shell脚本命令

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,050,258
精华内容 420,103
关键字:

脚本命令