Need help with snappy-start?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

437 Stars 28 Forks BSD 3-Clause "New" or "Revised" License 59 Commits 0 Opened issues


Tool for launching a Linux process from a snapshot

Services available


Need anything else?

Contributors list

No Data

snappy-start: Tool for process startup snapshots

snappy-start is a tool which takes a snapshot of a Linux program's process state after it has started up. It allows multiple instances of the program to be quickly launched from the snapshot.

This has two potential benefits:

  • Faster startup, if the program does a non-trivial amount of computation during startup.

  • Saving memory, because memory pages that the program writes to during startup will be shared between the instances.


First, build the tool by running
(which also runs some tests).

To create a snapshot:

./out/ptracer ./out/elf_loader PROG ARGS...

To run the snapshot:


The program will be snapshotted when it first calls an unhandled syscall, such as


Currently, the snapshot data is written to hard-coded files

(containing register state and a list of memory mappings) and
(data to restore using


$ ./out/ptracer ./out/elf_loader /usr/bin/python tests/
$ ./out/restore
Hello world, from restored Python process


The idea for this tool comes from Kenton Varda, who proposed using a "record/replay" approach, using

to monitor syscalls so that they can later be replayed.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.