To force an abnormal termination, just call a program that does not exist.
There is no way for a 2nd program to not start based on some other condition if the 2nd program has to do the checking.
You could have a special job queue for these jobs. Then in program 1, you put it on hold as your first instruction. If the job completes normally, the just before existing program, you RLSJOBQ