int pbs_asyrunjob( int c, char *jobid, /* I */ char *location, char *extend) { pbs_errno = 0; return(pbs_asyrunjob_err(c, jobid, location, extend, &pbs_errno)); } /* END pbs_asyrunjob() */
static void execute( char *job, /* I */ char *server, /* I */ char *location, /* I */ int async) /* I */ { int ct; /* Connection to the server */ int err; /* Error return from pbs_run */ int located = FALSE; char rmt_server[MAXSERVERNAME]; int local_errno = 0; cnt: if ((ct = cnt2server(server)) > 0) { if (async == TRUE) { err = pbs_asyrunjob_err(ct, job, location, NULL, &local_errno); /* see lib/Libifl/pbsD_runjob.c */ } else { err = pbs_runjob_err(ct, job, location, NULL, &local_errno); /* see lib/Libifl/pbsD_runjob.c */ } if (err && (local_errno == PBSE_UNKNODE)) { fprintf(stderr, "qrun: Unknown node in hostlist '%.16s...' for job %s\n", location, job); exitstatus = 2; } else if (err && (local_errno != PBSE_UNKJOBID)) { prt_job_err("qrun", ct, job); exitstatus = 2; } else if (err && (local_errno == PBSE_UNKJOBID) && !located) { located = TRUE; if (locate_job(job, server, rmt_server)) { pbs_disconnect(ct); strcpy(server, rmt_server); goto cnt; } prt_job_err("qrun", ct, job); exitstatus = 2; } pbs_disconnect(ct); } else { fprintf(stderr, "qrun: could not connect to server %s (%d) %s\n", server, ct * -1, pbs_strerror(ct * -1)); exitstatus = 2; } return; } /* END execute() */