void req_shutdown( struct batch_request *preq) { if ((preq->rq_perm & (ATR_DFLAG_MGWR | ATR_DFLAG_MGRD | ATR_DFLAG_OPRD | ATR_DFLAG_OPWR)) == 0) { req_reject(PBSE_PERM, 0, preq, NULL, NULL); return; } sprintf(log_buffer, msg_shutdown_op, preq->rq_user, preq->rq_host); log_event( PBSEVENT_SYSTEM | PBSEVENT_ADMIN | PBSEVENT_DEBUG, PBS_EVENTCLASS_SERVER, msg_daemonname, log_buffer); pshutdown_request = preq; /* save for reply from main() when done */ svr_shutdown(preq->rq_ind.rq_shutdown); return; } /* END req_shutdown() */
void req_shutdown(struct batch_request *preq) { int type; extern int shutdown_who; if ((preq->rq_perm & (ATR_DFLAG_MGWR | ATR_DFLAG_MGRD | ATR_DFLAG_OPRD | ATR_DFLAG_OPWR)) == 0) { req_reject(PBSE_PERM, 0, preq); return; } (void)sprintf(log_buffer, msg_shutdown_op, preq->rq_user, preq->rq_host); log_event(PBSEVENT_SYSTEM|PBSEVENT_ADMIN|PBSEVENT_DEBUG, PBS_EVENTCLASS_SERVER, LOG_NOTICE, msg_daemonname, log_buffer); pshutdown_request = preq; /* save for reply from main() when done */ type = preq->rq_ind.rq_shutdown; shutdown_who = type & SHUT_WHO_MASK; if (shutdown_who & SHUT_WHO_SECDONLY) (void)failover_send_shutdown(FAILOVER_SecdShutdown); if (shutdown_who & SHUT_WHO_SCHED) (void)contact_sched(SCH_QUIT, NULL); /* tell scheduler to quit */ if (shutdown_who & SHUT_WHO_SECDONLY) { reply_ack(preq); return; /* do NOT shutdown this Server */ } /* Moms are told to shutdown in pbsd_main.c after main loop */ svr_shutdown(type); return; }