精华内容
下载资源
问答
  • Linux Jenkins启动停止脚本

    万次阅读 2017-12-25 09:59:32
    Jenkins官网下载https://jenkins.io ...首先说一下这两个版本,个人觉得MIUI更新类似,一个开发版本一个稳定版,大家可以自行选择,功能上几乎没区别。 1.保存为jenkins目录下 jenkins.sh

    Jenkins的官网下载https://jenkins.io


    点击Download Jenkins按钮会弹出两个版本选择:LTS Release(长期支持版本),Weekly Release(每周更新版本)。首先说一下这两个版本,个人觉得和MIUI的更新类似,一个开发版本一个稳定版,大家可以自行选择,功能上几乎没区别。


    1.保存为jenkins目录下 jenkins.sh
    JENKINS_ROOT为 jenkins目录

    #! /bin/sh  
    # chkconfig: 2345 10 90   
    # description: jenkins ....  
    # This script will be executed *after* all the other init scripts.    
    # You can put your own initialization stuff in here if you don't    
    # want to do the full Sys V style init stuff.    
    #prefix=/home/lanmps/jenkins  
    #nohup $prefix/start_jenkins.sh >> $prefix/jenkins.log 2>&1 &  
      
    JENKINS_ROOT=/home/lanmps/jenkins  
    JENKINSFILENAME=jenkins.war  
      
    #停止方法  
    stop(){  
        echo "Stoping $JENKINSFILENAME "  
        ps -ef|grep $JENKINSFILENAME |awk '{print $2}'|while read pid  
        do  
           kill -9 $pid  
           echo " $pid kill"  
        done  
    }  
      
    case "$1" in  
    start)  
        echo "Starting $JENKINSFILENAME "  
        nohup $JENKINS_ROOT/start_jenkins.sh >> $JENKINS_ROOT/jenkins.log 2>&1 &  
      ;;  
    stop)  
      stop  
      ;;  
    restart)  
      stop  
      start  
      ;;  
    status)  
      ps -ef|grep $JENKINSFILENAME  
      ;;  
    *)  
      printf 'Usage: %s {start|stop|restart|status}\n' "$prog"  
      exit 1  
      ;;  
    esac


    2.保存为:start_jenkins.sh

    其中JENKINS_ROOT是你自己空间的路径

    注意:如果使用service jenkins start命令启动报错:java: command not found,那么java -jar命令就写绝对路径,比如:/usr/java/jdk1.8.0_25/bin/java -jar

    #!/bin/bash  
    JENKINS_ROOT=/home/lanmps/jenkins  
    export JENKINS_HOME=$JENKINS_ROOT/home  
    java -jar $JENKINS_ROOT/jenkins.war --httpPort=8080

    3.centos

    ln -s /home/lanmps/jenkins/jenkins.sh /etc/init.d/jenkins  
    chkconfig --add jenkins  
    chkconfig --level 345 jenkins on

    4.启动方式1

    /etc/init.d/jenkins start


    5.启动方式2
    service jenkins start

    参考文章:http://blog.csdn.net/fenglailea/article/details/42557751


    展开全文
  • Terminate Stop the server区别

    千次阅读 2018-08-02 11:04:18
    1、问题:本地开发后台系统时,有时候停止服务器然后启动服务器,需要后台用户重新登录 ,而有时候不需要重新登录 2、解决:停止服务时,点击servers下stop the server按钮,而不是点击console下Terminate ...

    1、问题:本地开发后台系统时,有时候停止服务器然后启动服务器,需要后台用户重新登录 ,而有时候不需要重新登录

    2、解决:停止服务时,点击servers下的stop the server按钮,而不是点击console下的Terminate

    3、原因:再默认情况下 tomcat 是开启serssion持久化的 ,而我们后台的登录信息就保存在session中  如果正常点击停止服务器,它就会调用servlet的destroy()方法,就会把session保存在本地文件中(前提是session中有内容),文件存在在tomcat的work的Catalina的localhost的项目名下

    而如果点击Terminate 就会直接停止服务 不会调用destroy() 方法 

    这一点 在eclipse的使用帮助文档中也有体现:

    展开全文
  • 今天上午,在IDEA上点击debug按钮启动项目时,项目需要五六分钟才能正常启动,控制台上也能看到日志,但是基本都在几个步骤后无法再继续下去,重复试了几次都无法正常启动项目,日志输出到特定那几句后就停止了,...

    简单的介绍一下事件过程:今天上午,在IDEA上点击debug按钮启动项目时,项目需要五六分钟才能正常启动,控制台上也能看到日志,但是基本都在几个步骤后无法再继续下去,重复试了几次都无法正常启动项目,日志输出到特定的那几句后就停止了,网上搜了下看,大多数人说是因为这个:

    linux或者部分unix系统提供随机数设备是/dev/random 和/dev/urandom ,两个有区别,urandom安全性没有random高,但random需要时间间隔生成随机数。jdk默认调用random。

    然而我修改之后再次debug启动还是一样的慢,没有效果,然后我再次重新解压了一份tomcat,重新部署了下,还是没有效果,这就让人觉得摸不着头脑,接着就猜想是不是因为我本机的ide有问题,就直接让同事更新了项目debug启动了,结果是七八秒就启动完成,这就让我对idea有点深信不疑了,但当我打开这个项目的test分支debug启动的时候,完美运行!最后偶然间使用run启动项目也完美运行,再认真琢磨了一番,才发现原来是因为我在方法上打的断点太多了,导致debug启动项目变慢。

    解决方法也简单,将打在方法上的断点去掉即可,如下图:

    究其原因,在idea官方文档中找到这样一句话:

    1 Note that using method breakpoints can slow down the application you are debugging.
    2 使用方法断点会使得正在debug调试的程序变慢。

    amazing!!!

    转载于:https://www.cnblogs.com/mYunYu/p/9474100.html

    展开全文
  • 枸杞由来技术栈

    2021-01-02 15:11:32
    Ionic 又写前端没太多区别,所以只能选 React Native。</li><li>TypeScript。当时在学习 Rust ,感受过静态+强类型语言编译成功基本就能跑好处,对动态语言所谓「灵活」好处也越来越...
  • Service(服务)在Android 中是在后台...下面我们就来介绍一下startServicebindService用法和区别。 startService创建一个工程ServiceTest,布局文件中添加两个按钮,一个开启服务,一个停止服务。 <?xml version="1
    • Service(服务)在Android 中是在后台运行的。服务的运行不需要任何用户界面。
      启动服务有两种方式,分别是startService和bindService。
      下面我们就来介绍一下startService和bindService的用法和区别。

    startService

    创建一个工程ServiceTest,布局文件中添加两个按钮,一个开启服务,一个停止服务。
    
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <Button
            android:id="@+id/btn_start_service"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="开启服务" />
    
        <Button
            android:id="@+id/btn_stop_service"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="停止服务" />
    </LinearLayout>
    创建一个类MyService继承Service。然后重写其onCreate(),onStartCommand(),
    onDestroy()方法,在方法中加入Log打印日志。如下:
    
    public class MyService extends Service {
        public static final String TAG = "MyService";
        @Override
        public IBinder onBind(Intent intent) {
            return myBinder;
        }
    
        //在服务创建的时候调
        @Override
        public void onCreate() {
            super.onCreate();
            Log.d(TAG, "onCreate ......");
        }
    
        //在每次服务启动的时候调用
        @Override
        public int onStartCommand(Intent intent, int flags, int startId) {
            Log.d(TAG, "onStartCommand ......");
            return super.onStartCommand(intent, flags, startId);
        }
    
        //在服务销毁的时候调用。
        @Override
        public void onDestroy() {
            super.onDestroy();
            Log.d(TAG, "onDestroy ......");
        }
    }
    当然,别忘了在Manifest.xml文件中配置。
    
     <service android:name=".MyService"></service>
    MainActivity中代码如下。
    
    
    public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    
        private Button btn_start_service;
        private Button btn_stop_service;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            btn_start_service = (Button) this.findViewById(R.id.btn_start_service);
            btn_stop_service = (Button) this.findViewById(R.id.btn_stop_service);
    
            btn_start_service.setOnClickListener(this);
            btn_stop_service.setOnClickListener(this);
        }
    
        @Override
        public void onClick(View v) {
            switch (v.getId()){
                case R.id.btn_start_service:
                    Intent intent = new Intent(this,MyService.class);
                    //开启服务
                    startService(intent);
                    break;
                case R.id.btn_stop_service:
                    Intent intent2 = new Intent(this,MyService.class);
                    //停止服务
                    stopService(intent2);
                    break;
            }
        }
    }
    运行程序到模拟器上,点击 开启服务按钮,然后到设置--> 应用 -->正在运行 查看,效果如下。
    

    服务

    MyService中的onCreate()和 onStartCommand()方法都执行了,日志如下:
    
    1555-1555/com.example.servicetest D/MyService: onCreate ......
    1555-1555/com.example.servicetest D/MyService: onStartCommand ......
    然后再点击多次开启服务按钮,发现只有onStartCommand()方法执行了。
    

    日志

    点击停止服务按钮,onDestroy()方法已经执行了。
    

    结果

    查看 设置--> 应用 -->正在运行 发现服务已经被销毁了。
    

    销毁

    • 小总结,使用startService开启服务的方式,可以使服务长期运行在后台。

    bindService

    前边我们介绍了startService,下面我们来聊一聊bindService。
    往布局文件中添加2个按钮。
    
      <Button
            android:id="@+id/btn_bind_service"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="绑定服务" />
        <Button
            android:id="@+id/btn_unbind_service"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="解绑服务" />
    修改MyService中代码,创建MyBinder类继承BInder,并自定义一个startGame()方法,打印Log。
    并将MyBinder 的实例对象在onBind()方法中返回回去。
    
     private  MyBinder myBinder = new MyBinder();
        class MyBinder extends Binder{
            public void startGame(){
                Log.d(TAG,"我是服务里边的方法,startGame ......");
            }
        }
    
        @Override
        public IBinder onBind(Intent intent) {
            return myBinder;
        }
    MainActivity中使用bindService需要借助到ServiceConnection这个类。
    重写其绑定成功onServiceConnected()和绑定失败onServiceDisconnected()的方法。
    并将onServiceConnected()方法中的service强转为自己写的MyBinder,并调用startGame()方法。
    
    public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    
        private Button btn_start_service;
        private Button btn_stop_service;
        private Button btn_bind_service;
        private Button btn_unbind_service;
        private MyService.MyBinder myBinder;
        boolean flag = false;
    
        private ServiceConnection connection = new ServiceConnection() {
            //成功绑定的时候调用
            @Override
            public void onServiceConnected(ComponentName name, IBinder service) {
            //强转
                myBinder =   (MyService.MyBinder) service;
                //调用服务里边的方法
                myBinder.startGame();
                flag = true ;
            }
            /**
             * 连接正常关闭的情况下是不会被调用的, 
             * 该方法只在Service 被破坏了或者被杀死的时候调用。
             */
            @Override
            public void onServiceDisconnected(ComponentName name) {
    
            }
        };
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            btn_start_service = (Button) this.findViewById(R.id.btn_start_service);
            btn_stop_service = (Button) this.findViewById(R.id.btn_stop_service);
            btn_bind_service = (Button) this.findViewById(R.id.btn_bind_service);
            btn_unbind_service = (Button) this.findViewById(R.id.btn_unbind_service);
    
            btn_start_service.setOnClickListener(this);
            btn_stop_service.setOnClickListener(this);
            btn_bind_service.setOnClickListener(this);
            btn_unbind_service.setOnClickListener(this);
        }
    
        @Override
        public void onClick(View v) {
            switch (v.getId()){
                case R.id.btn_start_service:
                    Intent intent = new Intent(this,MyService.class);
                    //开启服务
                    startService(intent);
                    break;
                case R.id.btn_stop_service:
                    Intent intent2 = new Intent(this,MyService.class);
                    //停止服务
                    stopService(intent2);
                    break;
                case R.id.btn_bind_service:
                    Intent bindIntent = new Intent(this, MyService.class);
                    //  绑定服务
                    bindService(bindIntent,connection,BIND_AUTO_CREATE);
                    break;
                case R.id.btn_unbind_service:
                   if (flag){
                        //解绑服务
                        unbindService(connection);
                        flag = false;
                    }
                    break;
            }
        }
    }
    运行程序,点击绑定服务按钮,发现MyBinder中的startGame()方法已经被调用了。
    
    5829-5829/com.example.servicetest D/MyService: onCreate ......
    5829-5829/com.example.servicetest D/MyService: 我是服务里边的方法,startGame ......
    多次点击 绑定服务按钮 ,发现Log信息并没有变化,说明只能绑定一次。
    查看 设置--> 应用 -->正在运行 发现服务并没有被创建。
    

    服务

    然后点击 解绑服务 按钮 ,执行了onDestroy()方法。
    

    效果

    • 小总结,bindService只能调用服务中的方法,不能启动服务让其长期运行在后台。

    startService和bindService组合使用

    经过上边的例子,我们已经了解了两者的区别,那么现在我有个想法,
    我既想让服务长期运行在后台,又想调用服务里边的方法,该怎么办呢?
    我们可以将startService和bindService组合到一起来使用。
    还是使用刚才那个例子,运行程序。
    先点击 开启服务按钮, 再点击 绑定服务按钮 ,Log如下。
    

    Log

    查看 设置--> 应用 -->正在运行 发现服务已经被创建了。
    

    效果

    我们想要的功能就实现了,既让服务运行在后台,又调到了服务里边的方法。
    销毁服务的时候需要 点击解绑服务 的按钮才可以销毁服务。
    以上就是startService和bindService的用法和区别。如有错误请指出,谢谢!
    
    展开全文
  • 它与众多同类软件根本区别在于,本软件是以系统服务形式运行,不需要用户登录系统就能正常执行。 本软件为纯绿色软件,单个文件,不需要安装,能运行于任意路径下。简单。完全免费使用。 使用方法: 1、启动...
  • 尽我所知,除了文中特别加以标注致谢地方外,论文中不包含其他人已经发表或撰写过研究成果,也不包含为获得东南大学或其它教育机构学位或证书而使用过材料。与我一同工作同志对本研究所做任何贡献均已...
  • 铭斯关机重启

    2016-06-29 14:37:39
    它与众多同类软件根本区别在于,本软件是以系统服务形式运行,不需要用户登录系统就能正常执行。 同时支持远程控制执行关机或重启计算机。另外有配套app可以进行控制。 本软件为纯绿色软件,单个文件,不...
  • # 默认这种方法是先通过atx-agent解析apk包mainActivity,然后调用am start -n $package/$activity启动 d.app_start("com.example.hello_world") # 使用 monkey -p ...
  • 系统服务非服务启动的区别: 系统服务启动:开机就会启动,适合经常使用或做服务器,无需手工启动,服务会随开机而启动,好处程序运行稳定。 非服务启动:需要手动启动一下,适合偶尔经常使用一下。在不使用的...
  • phpStudy v2014 3.10.zip

    2019-07-17 12:23:32
    系统服务非服务启动的区别: 系统服务启动:开机就会启动,适合经常使用或做服务器,无需手工启动,服务会随开机而启动,好处程序运行稳定。 非服务启动:需要手动启动一下,适合偶尔经常使用一下。在不使用的...
  • 系统服务非服务启动的区别: 系统服务启动:开机就会启动,适合经常使用或做服务器,无需手工启动,服务会随开机而启动,好处程序运行稳定。 非服务启动:需要手动启动一下,适合偶尔经常使用一下。在不使用的情况...
  • 系统服务非服务启动的区别: 系统服务启动:开机就会启动,适合经常使用或做服务器,无需手工启动,服务会随开机而启动,好处程序运行稳定。 非服务启动:需要手动启动一下,适合偶尔经常使用一下。在不使用的情况...
  • Visual Studio程序员箴言--详细书签版

    热门讨论 2012-10-16 20:37:39
    技巧4.39 显示“工具”→“自定义”对话框时,可切换交换工具栏上的按钮 98 技巧4.40 在工具栏工具提示中显示快捷键 99 4.4.2 上下文菜单 99 技巧4.41 自定义上下文菜单上命令 99 第5章 了解更多...
  • 系统服务非服务启动的区别: 系统服务启动:开机就会启动,适合经常使用或做服务器,无需手工启动,服务会随开机而启动,好处程序运行稳定。 非服务启动:需要手动启动一下,适合偶尔经常使用一下。在不使用的情况...
  • Visual Studio程序员箴言中文扫描PDF

    热门讨论 2010-12-28 01:04:18
    技巧4.39 显示“工具”→“自定义”对话框时,可切换交换工具栏上的按钮 98 技巧4.40 在工具栏工具提示中显示快捷键 99 4.4.2 上下文菜单 99 技巧4.41 自定义上下文菜单上命令 99 第5章 了解更多...
  • flash shiti

    2014-03-14 10:32:41
    11. 全等(===)运算符相同运算符基本相似,但是它们有一个很重要的区别 □ A. 全等(===)运算符执行数据类型的转换 □ B. 全等(===)运算符不执行数据类型的转换 □ C. 全等(===)运算符永远返回...
  • AirPlayer录屏大师

    2018-12-14 09:28:54
     苹果录屏大师AirPlayerApowersoft是常用的两款苹果设备屏幕录制工具,能够将苹果设备上的影像画面实时记录下来,保存在电脑上,下面小编来介绍一下两款软件的区别。  Apowersoft录屏王包含安卓、苹果PC三个...
  • 疯狂Android讲义源码

    热门讨论 2013-01-15 17:03:21
    10.1.2 启动和停止Service 10.1.3 绑定本地Service并与之通信 10.1.4 Service生命周期 10.2 跨进程调用Service(AIDL服务) 10.2.1 AIDL服务简介 10.2.2 创建AIDL文件 10.2.3 将接口暴露给客户端 10.2.4 ...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    9.Java中访问数据库的步骤,StatementPreparedStatement之间的区别。 10.找出下列代码可能存在的错误,并说明原因: 二、JSP&Servlet技术 1.描述JSPServlet的区别、共同点、各自应用的范围 2.在Web开发中...
  • WINRAR5.0正式注册版

    2013-10-10 10:14:03
    的恢复记录,如 1 - 2%, 或较少的随机损坏类型时 4.x 5.0 的区别较少。对于单一 连续损坏,4.x 5.0 的效率是相同的。 此外,通常的数据抹除,新的恢复记录比之前的 RAR 版本可以检测删除插入更大的大 小...
  • 系统服务非服务启动的区别: 系统服务启动:开机就会启动,适合经常使用或做服务器,无需手工启动,服务会随开机而启动,好处程序运行稳定。 非服务启动:需要手动启动一下,适合偶尔经常使用一下。在不使用的情况...
  • 3.4.3局部变量成员变量的区别119 3.4.4方法的访问权限121 3.5方法的调用121 3.5.1方法调用的形式121 3.5.2方法调用的参数123 3.5.3隐含参数this127 3.6构造方法128 3.6.1无参数构造方法的定义使用129 ...
  • 会计理论考试题

    2012-03-07 21:04:40
    7.用紧急启动盘(ESD)启动计算机后,屏幕上出现信息是___B____。 A、Windows98桌面 B、A> C、Windows98资源管理器 D、C> 8.关于文件含义,比较正确说法应该是 ___A____ 。 A、记录在存储介质上一组相关信息...
  • 这样就可以自动启动了,但现在还没有运行,可运行命令/etc/init.d/syncy start 来启动程序,也可以通过命令/etc/init.d/syncy stop来停止程序,有管理界面也可以在启动项里来启动停止同步程序。 最后,希望...
  • 24.在C#中,string str = null 与 string str = “” 请尽量使用文字或图象说明其中的区别。 答:string str = null 是不给他分配内存空间,而string str = \"\" 给它分配长度为空字符串的内存空间。 25.请详述在...
  • delphi 开发经验技巧宝典源码

    热门讨论 2010-08-12 16:47:23
    0058 String类型Pchar类型用法和区别 36 0059 如何捕获异常 37 0060 TStrings与TStringList使用 37 0061 如何实现窗体文件转换 37 第3章 程序算法 39 3.1 计算类算法 40 0062 如何计算1~100...
  • 黑马安卓52期视频教程

    热门讨论 2015-06-24 22:15:48
    04_JVMDVM的区别 05_下载SDK 06_SDK目录结构 07_模拟器的创建 08_创建部署Android项目 09_Android项目目录结构 10_清单文件 11_应用安装过程 12_DDMS的使用 13_adb进程&指令 14_电话拨号器 15_按钮的点击事件 16_...
  • 184 理解#include#include file.h的区别 185 在头文件中使用卫式定义 186 在大的工程中使用通用头文件 187 把头文件添加到makefile的关联列表中 188 理解当头文件改变时发生什么 第十七章 条件编译 189 理解#if...

空空如也

空空如也

1 2
收藏数 35
精华内容 14
关键字:

停止按钮和启动按钮的区别