Skip to content
Advertisement

qt run shell commands via qprocess

I am developing a small QT application to interact with the terminal, to send commands to the terminal and to read back information printed out.

Example: get output of all processes using ps -aux

PROBLEM

I am able to write information out to the terminal but I dont think it is in the system scope, actual example:

Command passed to shell interpreter : "echo "pre"; ps -aux; echo "post"

edit from comment:

I need to send specific complete commands, I am not looking for shortened or alternative commands, I require a method of sending a command like this : ps -aux | grep chrome | tr -s " " | cut -d " " -f 2 and reading its output. This example is getting all pid’s of all running chrome processes

Interpreters attempted :

  • sh
  • /bin/bash

Code:

JavaScript

Debug information:

When breakpoint is reached, debug information as follows:

JavaScript

It was suggested to run shell code using this method above from a post on SO, could not find it again.

I am at a loss, I do not understand why running these commands to not interact directly with the system (and its information),

Any advice?

Advertisement

Answer

you need to use waitForFinished() after start, not before

JavaScript

Note that waitForFinished() blocks until the process (that has been invoked by start) has finished …

Also, you may check if the process is started successfully and/or if waitForFinished timed out

JavaScript
User contributions licensed under: CC BY-SA
10 People found this is helpful
Advertisement