Line 6: |
Line 6: |
| | | |
| * First, X software uses SystemV IPC shared memory to exchange data between server and application, thus you'll have to run the whole stuff in IPC namespace; | | * First, X software uses SystemV IPC shared memory to exchange data between server and application, thus you'll have to run the whole stuff in IPC namespace; |
− | * Second, in order to be restored reliably, it's recommended to run VNC server, window manager and application in a PID namespace; | + | * Second, in order to be restored reliably, it's recommended to run [https://tigervnc.org/ VNC server], window manager and application in a PID namespace; |
| * Third, when started from shell they will inherit session ID and terminal from that shell, which might block dump. | | * Third, when started from shell they will inherit session ID and terminal from that shell, which might block dump. |
| | | |
Line 22: |
Line 22: |
| #!/bin/bash | | #!/bin/bash |
| set -m | | set -m |
− | Xvnc :25 -v -geometry 800x600 -i 0.0.0.0 -SecurityTypes none & | + | Xvnc :25 -v -geometry 800x600 -interface 0.0.0.0 -SecurityTypes none & |
| pid=$! | | pid=$! |
| trap "kill $pid; wait" EXIT | | trap "kill $pid; wait" EXIT |
Line 31: |
Line 31: |
| with the above "software" the server can be launched like this: | | with the above "software" the server can be launched like this: |
| | | |
| + | # chmod a+x vnc_server.sh |
| # ./newns ./vnc_server.sh icewm | | # ./newns ./vnc_server.sh icewm |
| | | |
Line 42: |
Line 43: |
| == Launch VNC client == | | == Launch VNC client == |
| | | |
− | After this you can start your favorite VNC client (viewer) to see what's inside the server. The latter would be visible on port 5925 (:25 argument). | + | After this you can start your favorite VNC client (viewer) to see what's inside the server. The latter would be visible on port 5925 (:25 argument). For example: |
| + | |
| + | $ vncviewer localhost:25 |
| | | |
| [[File:Vnc.jpg|400px]] | | [[File:Vnc.jpg|400px]] |
Line 72: |
Line 75: |
| | | |
| Restore finished successfully. Resuming tasks. | | Restore finished successfully. Resuming tasks. |
| + | |
| + | == Video Demo == |
| + | |
| + | [https://www.youtube.com/watch?v=j4wlYY7lTDw Dumping video player with CRIU] |
| + | |
| + | [https://www.youtube.com/watch?v=roJ91Kqeq5w Example how CRIU can dump and restore a TCP connections] |
| + | |
| + | [https://www.youtube.com/watch?v=kjhuzSl6JYc Checkpoint and restore of Firefox with CRIU] |
| + | |
| + | == See also == |
| + | |
| + | * [[Screen]] |
| + | * [[TCP connection]] |
| | | |
| [[Category: HOWTO]] | | [[Category: HOWTO]] |