5
##########################################################################
7
# The Contents of this file are made available subject to the terms of
8
# the Sun Industry Standards Source License Version 1.2
10
# Sun Microsystems Inc., March, 2001
13
# Sun Industry Standards Source License Version 1.2
14
# =================================================
15
# The contents of this file are subject to the Sun Industry Standards
16
# Source License Version 1.2 (the "License"); You may not use this file
17
# except in compliance with the License. You may obtain a copy of the
18
# License at http://gridengine.sunsource.net/Gridengine_SISSL_license.html
20
# Software provided under this License is provided on an "AS IS" basis,
21
# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
22
# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
23
# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
24
# See the License for the specific provisions governing your rights and
25
# obligations concerning the Software.
27
# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
29
# Copyright: 2001 by Sun Microsystems, Inc.
31
# All Rights Reserved.
33
##########################################################################
38
if [ ! -f $ckpt_dir/ckpt.log ]; then
39
touch $ckpt_dir/ckpt.log
40
chmod 666 $ckpt_dir/ckpt.log
43
# create temp directory for holding checkpoint info
45
tmpdir=$ckpt_dir/ckpt.$1
50
F=$tmpdir/checkpoint.log
53
echo ------------------------------------------------------------- >> $F 2>&1
54
echo `basename $0` called at `date` >> $F 2>&1
55
echo called by: `id` >> $F 2>&1
56
echo with args: $* >> $F 2>&1
58
# Cray checkpoint workaround - delete the job script so chkpnt(1)
59
# will save and restore it. For this to work, "shell_start_mode"
60
# should be set to "script_from_stdin" in the global cluster
63
rm -f $JOB_SCRIPT >> $F 2>&1
65
# get the O.S. job identifier
67
#job_id=`ps -elw|grep $2 |cut -c34-39,172-176 |grep $2 |cut -c8-12`
73
job_dir=`dirname $JOB_SCRIPT`/../active_jobs/$1
74
job_id=`cat $job_dir/osjobid`
75
echo $job_id > osjobid
78
# checkpoint the job to a temporary file and then rename that file
79
# just in case we go down while checkpointing
82
echo /usr/bin/chkpnt -j $job_id -v -k -f chkpnt_$1 >> $F 2>&1
83
/usr/bin/chkpnt -j $job_id -v -k -f chkpnt_$1.new >> $F 2>&1
85
mv chkpnt_$1.new chkpnt_$1
87
echo `date +"%D %T"` "Job $1 (osjobid=$job_id) checkpointed and killed, status=$cc" >> $ckpt_dir/ckpt.log