From fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Wed, 8 Jul 2015 20:46:52 -0400 Subject: Initial commit --- sys/etc/prkill.x | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 sys/etc/prkill.x (limited to 'sys/etc/prkill.x') diff --git a/sys/etc/prkill.x b/sys/etc/prkill.x new file mode 100644 index 00000000..f6938923 --- /dev/null +++ b/sys/etc/prkill.x @@ -0,0 +1,42 @@ +# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. + +include +include +include + +define NOKILL NO +define KILL YES + +# PRKILL -- Kill a detached process. Control does not return until the process +# has terminated, unless the kill fails for some reason. If the process exists +# and is terminated by the kill directive, the exit status is left in the +# process table for return by PRCLDPR. + +procedure prkill (job) + +int job # slot number of job in prd.com table +include "prd.com" +errchk syserr + +begin + # Kill the process if there is such a process and it is still active. + # It is an error to try to kill a nonexistent process or a process + # which has already been killed. + + if (pr_jobcode[job] == NULL) + call syserr (SYS_PRBKGNF) + else if (pr_active[job] == NO) + call syserr (SYS_PRBKGNOKILL) + else { + call zcldpr (pr_jobcode[job], KILL, pr_exit_status[job]) + if (pr_exit_status[job] == ERR) + call syserr (SYS_PRBKGNOKILL) + else + pr_active[job] = NO + } + + # Delete the bkgfile if the process has not already done so during + # shutdown. + iferr (call delete (Memc[pr_bkgfile[job]])) + ; +end -- cgit