public bool is_async = true;
public bool throw_exceptions = false;
+ public bool detach = false;
public Spawn(string cwd, string[] args) throws Error
{
GLib.debug("cd %s; %s" , this.cwd , string.joinv(" ", this.args));
-
+ if (this.detach) {
+ Process.spawn_async_with_pipes (
+ this.cwd,
+ this.args,
+ this.env.length > 0 ? this.env : null,
+ SpawnFlags.SEARCH_PATH | SpawnFlags.DO_NOT_REAP_CHILD,
+ null,
+ out this.pid);
+ ChildWatch.add (this.pid, (pid, status) => {
+ // Triggered when the child indicated by child_pid exits
+ Process.close_pid (pid);
+
+ });
+
+ return;
+
+ }
Process.spawn_async_with_pipes (
this.cwd,
this.args,
out standard_error);
// stdout:
-
+
//print(JSON.stringify(gret));
*/
private bool read(IOChannel ch)
{
- string prop = (ch == this.out_ch) ? "output" : "stderr";
+ // string prop = (ch == this.out_ch) ? "output" : "stderr";
// print("prop: " + prop);
} else {
this.stderr += buffer;
+ this.output_line( buffer);
}
//_this[prop] += x.str_return;
//if (this.cfg.debug) {