Simple loop

Revision as of 11:06, 12 April 2013 by Avagin (talk | contribs) (Dumping one shell job)
Jump to: navigation, search

Dumping a simplest process in a new session without controll terminal

$ cat > <<-EOF
while :; do
    sleep 1

$ chmod +x
$ setsid ./  < /dev/null &> test.log &
[2] 2220
[2]+  Done                    setsid ./ < /dev/null &>test.log

$  ps -C
 PID TTY          TIME CMD
2221 ?        00:00:00
$  ~/crtools/crtools dump -t 2221 -vvv -o dump.log && echo OK
$  ls
core-2221.img   eventpoll-tfd.img  filelocks-2221.img  inotify.img       netlinksk.img     pipes.img         sigacts-2424.img   test.log
core-2424.img   fanotify.img       filelocks-2424.img  inotify-wd.img    packetsk.img      pstree.img        signalfd.img
creds-2221.img  fanotify-mark.img  fs-2221.img         inventory.img     pagemap-2221.img  reg-files.img     signal-p-2221.img  tty.img
creds-2424.img  fdinfo-2.img       fs-2424.img         itimers-2221.img  pagemap-2424.img  remap-fpath.img   signal-p-2424.img  tty-info.img
dump.log        fdinfo-3.img       ids-2221.img        itimers-2424.img  pages-1.img       rlimit-2221.img   signal-s-2221.img  unixsk.img
eventfd.img     fifo-data.img      ids-2424.img        mm-2221.img       pages-2.img       rlimit-2424.img   signal-s-2424.img  vmas-2221.img
eventpoll.img   fifo.img           inetsk.img          mm-2424.img       pipes-data.img    sigacts-2221.img  sk-queues.img      vmas-2424.img
$ ~/crtools/crtools restore -d -t 2221 -vvv -o restore.log && echo OK

Dumping one shell job

Now let's try to dump a program, which is using a terminal. For that we need to execute our test script or another program (e.g. "top") from a terminal without redirections. It will report date and time every second. crtools supports only Unix98 PTYs.

$ ./
$ ps -C
  PID TTY          TIME CMD
 2621 pts/1    00:00:00

Currently crtools doesn't support a stopped task, so "crtools dump" must be executed from another terminal.

$  ~/crtools/crtools dump -t 2621
(00.012929) Error (tty.c:1022): tty: Found dangling tty with sid 940 pgid 2621 (pts) on peer fd 0. Consider using --shell-job option.
(00.013111) Error (cr-dump.c:1636): Dumping FAILED.

crtools asks to set the option --shell-job, because we try to dump only a part of session and a slave point of a tty pair. It's a common rule to ask a user, if only a part of something is dumped.

$ ~/crtools/crtools dump -vvvv -o dump.log -t 2621 --shell-job && echo Ok
$  ~/crtools/crtools restore -vvvv -o restore.log -t 2621 --shell-job
Fri Apr 12 12:41:09 MSK 2013
Fri Apr 12 12:41:10 MSK 2013