blktrace bno_plot.py: output comprehensive message when gnuplot not found
authorEiichi Tsukata <devel@etsukata.com>
Tue, 3 Dec 2013 12:04:59 +0000 (21:04 +0900)
committerJens Axboe <axboe@kernel.dk>
Wed, 4 Dec 2013 02:25:21 +0000 (19:25 -0700)
Currently, bno_plot.py uses os.execvp which does not show enough information
when executed command is not found. For example, when gnuplot is not found
bno_plot.py shows the following messages:

    Traceback (most recent call last):
      File "/usr/local/bin/bno_plot.py", line 123, in <module>
        os.execvp(cmd[0], cmd)
      File "/usr/lib64/python2.7/os.py", line 344, in execvp
        _execvpe(file, args)
      File "/usr/lib64/python2.7/os.py", line 368, in _execvpe
        func(file, *argrest)
    OSError: [Errno 2] No such file or directory

Users can't understand what happend directly from the message.

Instead of os.execvp, this patch uses os.system which shows the following
messages when gnuplot not found:

    sh: gnuplot: command not found

Signed-off-by: Eiichi Tsukata <devel@etsukata.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
btt/bno_plot.py

index 19dfdfdb953a3bf4a4a1d9ed5e3a40084a20adfe..aa9248065b083f992c1218a551f1b0d170882503 100644 (file)
@@ -114,13 +114,12 @@ if __name__ == '__main__':
 
        pid = os.fork()
        if pid == 0:
-               cmd = '/usr/bin/gnuplot %s/plot.cmds -' % tmpdir
+               cmd = 'gnuplot %s/plot.cmds -' % tmpdir
 
                if verbose: print 'Executing %s' % cmd
 
-               cmd = cmd.split(None)
                os.chdir(tmpdir)
-               os.execvp(cmd[0], cmd)
+               os.system(cmd)
                sys.exit(1)
 
        os.waitpid(pid, 0)