Run a process (like batch files and external exes) asynchronously from within your app and monitor the output (think of FTPing files via an external FTP client)?
Handle scripting languages (like PHP scripts) synchronously or asynchronously?
Run a user interface to control your service (and bypass UAC)?
Advanced running of processes
Advanced running of processes.
Built in IPC (inter-process communication) for transferring data between your applications.
Jobs to group, control and monitor processes.
Start command line processes and interact with them via their StdIn and StdOut. Pass them command line parameters, retrieve the return result, and terminate them as needed.
Group processes into Jobs and control them as a unit.
Run Command on Steroids'
So one way to think of OddJob is like a RUN command on steroids. Indeed it's way beyond RUN because the usefulness of RUN ends as soon as the other process is started. With OddJob the usefulness is only just beginning when the other process starts.
OddJob also allows you to monitor the processes in a Job returning information like CPU and Memory usage. So if you attach a process to your job, you can then decide if the other process has consumed too many resources, and if necessary, kill it. And restart it. So if you want one program to monitor another, this makes an excellent way to do that. Better yet, if the process being monitored is something you wrote, then you could be more polite than just killing it, by sending it a message to shut-down or something.
OddJob has functionality that let's you list all the processes running on the PC - not just the ones already in your job. And then you can add any of those processes to your job. (The only caveat being that a process can only be in one Job, so if it's already in a job then you can't grab it.) Once the process is in your job you can monitor it, and kill it if you like. (You can kill any process, even if they're not in your job, but you can't monitor them as effectively if they're not in your job). So in this way, it's a process Manager.