~ubuntu-branches/ubuntu/utopic/gridengine/utopic

« back to all changes in this revision

Viewing changes to source/dist/ckpt/cpr_migration_command

  • Committer: Bazaar Package Importer
  • Author(s): Mark Hymers
  • Date: 2008-06-25 22:36:13 UTC
  • Revision ID: james.westby@ubuntu.com-20080625223613-tvd9xlhuoct9kyhm
Tags: upstream-6.2~beta2
ImportĀ upstreamĀ versionĀ 6.2~beta2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/ksh
 
2
#
 
3
#
 
4
#___INFO__MARK_BEGIN__
 
5
##########################################################################
 
6
#
 
7
#  The Contents of this file are made available subject to the terms of
 
8
#  the Sun Industry Standards Source License Version 1.2
 
9
#
 
10
#  Sun Microsystems Inc., March, 2001
 
11
#
 
12
#
 
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
 
19
#
 
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.
 
26
#
 
27
#  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
 
28
#
 
29
#  Copyright: 2001 by Sun Microsystems, Inc.
 
30
#
 
31
#  All Rights Reserved.
 
32
#
 
33
##########################################################################
 
34
#___INFO__MARK_END__
 
35
 
 
36
set +u
 
37
 
 
38
ckpt_dir=$3
 
39
 
 
40
if [ ! -f $ckpt_dir/ckpt.log ]; then
 
41
   touch $ckpt_dir/ckpt.log
 
42
   chmod 666 $ckpt_dir/ckpt.log
 
43
fi
 
44
 
 
45
sge_root=${SGE_ROOT}
 
46
sge_cell=${SGE_CELL}
 
47
 
 
48
# workaround to force job to restart on same queue (svd)
 
49
. $sge_root/${sge_cell:-default}/common/settings.sh
 
50
qalter -q $QUEUE $JOB_ID
 
51
 
 
52
# create temp directory for holding checkpoint info
 
53
 
 
54
tmpdir=$ckpt_dir/ckpt.$1
 
55
mkdir -p $tmpdir
 
56
cd $tmpdir
 
57
 
 
58
# create log file
 
59
 
 
60
#F=$tmpdir/checkpoint.log
 
61
F=~/$REQNAME.co$1
 
62
touch $F
 
63
 
 
64
print -------------------------------------------------------------  >> $F 2>&1
 
65
print `basename $0` called at `date`      >> $F 2>&1
 
66
print called by: `id`                    >> $F 2>&1
 
67
print with args: $*                      >> $F 2>&1
 
68
 
 
69
# checkpoint the job to one of two different files (i.e. ping-pong)
 
70
# just in case we go down while checkpointing
 
71
 
 
72
currcpr=`cat currcpr`
 
73
if [ "$currcpr" = "2" ]; then
 
74
    currcpr=1
 
75
    prevcpr=2
 
76
else
 
77
    currcpr=2
 
78
    prevcpr=1
 
79
fi
 
80
 
 
81
# use the ASH to checkpoint if it is available.
 
82
# otherwise, use the process group ID
 
83
 
 
84
if [ -n "$OSJOBID" ]
 
85
then
 
86
    popt="$OSJOBID:ASH"
 
87
else
 
88
    popt="$2:GID"
 
89
fi
 
90
 
 
91
print Migration command: cpr -c cpr_$1.$currcpr -p $popt -f -k >> $F 2>&1
 
92
cpr -c cpr_$1.$currcpr -p $popt -f -k >> $F 2>&1
 
93
cc=$?
 
94
if [ $cc -eq 0 ]; then
 
95
   print $currcpr > currcpr
 
96
   if [ -d cpr_$1.$prevcpr ]; then
 
97
      print Deleting old checkpoint file >> $F 2>&1
 
98
      cpr -D cpr_$1.$prevcpr >> $F 2>&1
 
99
   fi
 
100
fi
 
101
 
 
102
print `date +"%D %T"` Job $1 "(pid=$2) checkpointed and killed, status=$cc" >> $ckpt_dir/ckpt.log