<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 閱讀(425) 評論(0)  編輯  收藏 所屬分類: Java

    主站蜘蛛池模板: 精品久久久久亚洲| 亚洲精品无码成人片久久不卡 | 亚洲依依成人亚洲社区| 99久热只有精品视频免费看| 久久亚洲国产午夜精品理论片| AAAAA级少妇高潮大片免费看| 久久亚洲2019中文字幕| 国产99精品一区二区三区免费| 亚洲综合精品网站在线观看| 黄色视屏在线免费播放| 国产v亚洲v天堂无码网站| 日本视频在线观看永久免费| 亚洲一区二区三区夜色| 91热成人精品国产免费| 中文字幕精品三区无码亚洲| 日韩午夜免费视频| 一级毛片a免费播放王色电影 | 四虎成年永久免费网站| 精品亚洲AV无码一区二区三区 | 免费无码国产在线观国内自拍中文字幕 | 亚洲成年人在线观看| 国产高清免费视频| 亚洲成年网站在线观看| 四只虎免费永久观看| 色播在线永久免费视频网站| 亚洲视频精品在线观看| 爽爽日本在线视频免费| 中国好声音第二季免费播放| 亚洲精品熟女国产| 国产精品成人四虎免费视频| 91视频免费观看| www.亚洲成在线| 亚洲综合精品网站在线观看| 日本视频一区在线观看免费| 香港经典a毛片免费观看看| 亚洲精品成人无限看| 99久久99这里只有免费费精品| 免费福利在线观看| 精品亚洲成AV人在线观看| 成人永久福利免费观看| 毛片在线播放免费观看|