<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    敬的世界

    常用鏈接

    統計

    最新評論

    java 調用 LINUX service ntpd stop

    If you read about the Javadoc of the Process class, you will discover something
    very weird and unexpected. The following is the context of the Javadoc for Process.
    In effect, you should be very clear of this limitation before you think of using
    the Process JDK. Ok, here it is:


    The methods that create processes may not work well for special processes on certain
    native platforms, such as native windowing processes, daemon processes, Win16/DOS
    processes on Microsoft Windows, or shell scripts.

    The created subprocess does not have its own terminal or console. All its standard
    io (i.e. stdin, stdout, stderr) operations will be redirected to the parent process
    through three streams (getOutputStream(), getInputStream(), getErrorStream()).
    ...


    So basically, Process does not guarantee your daemon process to work properly. This
    is horrifying when I first read about this Javadoc. However, I have changed my
    mind after using Process for a while. My experience tells me that usually Process
    cannot be working at the following circumstances: (assuming we are in Linux O.S.)

    - to execute shell built-in commands e.g. "cd" or "alias"
    - to redirect output from the executed application,
    - This method will NOT expand filesystem wildcards e.g. "*".

    Taking all these things into consideration, let's see what we can do to improve
    your code.

    First of all, Process has its standard outputstream, and its standard errorstream
    (but don't try to redirect them, as it will *not* work)


    Process proc = Runtime.getRuntime().exec(command);

    // Create thread for reading inputStream (process' stdout)
    proc.getInputStream();

    // Create thread for reading errorStream (process' stderr)
    proc.getErrorStream()


    Another fact I can see why your ntpd has not stopped is maybe you havn't given
    enough time for the Process to be executed completely.

    Consider adding the following code into your program:


    // this will wait for the process to end!!! I think it is very important
    // not to interfere with other process in the O.S.
    int returnCode = proc.waitFor();

    String msg = "Shell command [" + commandString + "] result [";
    if (returnCode == 0)
    {
    msg += "SUCCEEDED";
    }
    else
    {
    msg = msg + "FAILED - ret code: " + returnCode;
    }
    msg += "]";



    Then you can print the msg to the standard output or simply trace it into your log.
    You shall see the error if occurs.

    Another thing I can suggest you to do is fully read the Process Javadoc and any related documents about using Process.

    Hope these help.


    import java.io.*;
    public chass shell{
    public static void main(String [] args)throws Exception{
    try

    {

    process = Runtime.getRuntime().exec ("bin/sh service ntpd stop");

    InputStreamReader ir=newInputStreamReader(process.getInputStream());

    LineNumberReader input = new LineNumberReader (ir);


    String line;

    while ((line = input.readLine ()) != null)

    System.out.println(line);

    }

    catch (java.io.IOException e){

    System.err.println ("IOException " + e.getMessage());

    }
    }
    ?

    來自 :http://www.cjsdn.net/post/view?bid=1&id=196586

    posted on 2009-04-26 02:38 picture talk 閱讀(420) 評論(0)  編輯  收藏 所屬分類: Java

    主站蜘蛛池模板: 午夜国产大片免费观看| 国内免费高清在线观看| 亚洲视频在线一区二区| 久久久久久亚洲av无码蜜芽| 曰批全过程免费视频在线观看| 亚洲AV无码久久| 99精品视频在线观看免费播放 | 亚洲精品视频免费观看| 免费成人在线观看| 久青草国产免费观看| 中文字幕亚洲综合久久菠萝蜜| 97在线免费视频| 中文字幕亚洲精品资源网| 国产a视频精品免费观看| 精品亚洲AV无码一区二区三区 | 亚洲午夜福利精品久久| 在线免费视频你懂的| 久久精品国产精品亚洲蜜月| 最近中文字幕电影大全免费版| 亚洲国产成人精品久久| 日韩中文字幕免费| 一级黄色片免费观看| 亚洲性天天干天天摸| 拨牐拨牐x8免费| 四虎永久在线精品免费一区二区 | 亚洲精品NV久久久久久久久久| 一区二区三区视频免费观看| 国产精一品亚洲二区在线播放| 24小时在线免费视频| 亚洲中文无码永久免| 亚洲午夜福利精品无码| 18级成人毛片免费观看| 亚洲精品伦理熟女国产一区二区| 啊灬啊灬别停啊灬用力啊免费看| aa毛片免费全部播放完整| 亚洲男女性高爱潮网站| 日韩一区二区在线免费观看| 中文字幕在线免费看线人| 亚洲午夜成激人情在线影院| 免费在线观看你懂的| 老汉精品免费AV在线播放|