# File lib/cft/commands.rb, line 240
            def execute(session, args)
                ppid = session.path(:ppid)
                File::open(ppid, "w") { |f| f.puts "#{Process::pid}"}
                monitor = false
                oldusr1 = trap("SIGUSR1") do
                    monitor = true
                end
                Cft::Puppet::genstate(session.path(:pp_after))
                Cft::RPM::genstate(session.path(:rpm_after))
                Cft::RPM::genshadow(session.path(:rpm_shadow),
                                    session.path(:rpm_before),
                                    session.path(:rpm_after))
                File::delete(session.pid)
                slept = 0
                while not monitor and slept < 10
                    slept += 0.5
                    sleep 0.5
                end
                if slept >= 10
                    puts "Timed out waiting for daemon to shut down"
                    return 1
                end
                File::delete(ppid)
                puts "Stopped session #{session.name}"
                return 0
            end