<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

    主站蜘蛛池模板: 亚洲国产人成精品| 亚洲精品国产专区91在线| 国产亚洲大尺度无码无码专线| 亚洲AV永久无码精品放毛片| 岛国精品一区免费视频在线观看| 亚洲国产成人久久一区WWW| 黄网站色视频免费观看45分钟 | 2017亚洲男人天堂一| 一个人看的www在线免费视频 | 久久精品国产亚洲香蕉| 日本亚洲欧洲免费天堂午夜看片女人员 | 亚洲视频在线视频| 在线看无码的免费网站| 亚洲神级电影国语版| 日韩免费一区二区三区在线播放| 亚洲精品午夜国产va久久| 日韩免费高清播放器| 日本免费高清一本视频| 免费国产高清毛不卡片基地 | 亚洲蜜芽在线精品一区| 99久久成人国产精品免费| 免费不卡中文字幕在线| 免费精品国产自产拍在线观看| 国产亚洲综合网曝门系列| 久久国产色AV免费看| 亚洲国产精品日韩av不卡在线| 91av免费观看| 欧美激情综合亚洲一二区| 亚洲欧洲中文日韩av乱码| 午夜理伦剧场免费| 亚洲精品无码久久久影院相关影片 | 十八禁无码免费网站| 亚洲av成人一区二区三区| 国产成人免费a在线视频app| a高清免费毛片久久| 精品亚洲成a人片在线观看| 天天摸夜夜摸成人免费视频| 又大又硬又粗又黄的视频免费看| 日本免费v片一二三区| 青青操免费在线观看| 亚洲最大无码中文字幕|