-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkexec-dump.sh
executable file
·47 lines (41 loc) · 1.2 KB
/
kexec-dump.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/bin/bash
set -x -e
function criu_dump()
{
${CRIU_BIN} dump -D "${IMAGES_PATH}" -o "${LOGS}/dump.log" \
-t ${SSHD_PID} -j --tcp-established --ext-unix-sk \
-vvvv -l --ghost-limit 10485760
${CRIT_BIN} show ${IMAGES_PATH}/tty-info.img | \
sed 's/"index": \([0-9]*\)/"index": 1\1/' | \
${CRIT_BIN} encode > ${IMAGES_PATH}/tty-info.img.new
mv ${IMAGES_PATH}/tty-info.img.new ${IMAGES_PATH}/tty-info.img
${CRIT_BIN} show ${IMAGES_PATH}/reg-files.img | \
sed 's|/dev/pts/\([0-9]*\)|/dev/pts/1\1|' | \
${CRIT_BIN} encode > ${IMAGES_PATH}/reg-files.img.new
mv ${IMAGES_PATH}/reg-files.img.new ${IMAGES_PATH}/reg-files.img
${CRIT_BIN} show ${IMAGES_PATH}/tty-info.img > "${LOGS}/tty-info.txt"
ls -l "${IMAGES_PATH}" > "${LOGS}/images.txt"
${CRIT_BIN} show ${IMAGES_PATH}/cgroup.img > "${LOGS}/cgroup.txt"
}
function kexec_load()
{
if [[ ${DEBUG} == "y" ]] ; then
pwd
ls -l
ls -l ${KPATH}/arch/x86/boot/bzImage
fi
kexec -l ${KPATH}/arch/x86/boot/bzImage --command-line "${CMDLINE}"
}
function perform_kexec()
{
{
criu_dump
if [[ ${DEBUG_NO_KEXEC} == "y" ]] ; then
$(grep exec /etc/init/criu.conf)
fi
./debug-dropbox.sh
kexec_load
kexec -e
} || touch /reboot.failed
}
perform_kexec