+my ($for_destroy, $lei_env, $lei_daemon_pid, $owner_pid);
+
+# TEST_LEI_DAEMON_PERSIST is currently broken. I get ECONNRESET from
+# lei even with high kern.ipc.soacceptqueue=1073741823 or SOMAXCONN, not
+# sure why. Also, testing our internal inotify usage is unreliable
+# because lei-daemon uses a single inotify FD for all clients.
+if ($ENV{TEST_LEI_DAEMON_PERSIST} && !$ENV{TEST_LEI_DAEMON_PERSIST_DIR} &&
+ (PublicInbox::Spawn->can('recv_cmd4') ||
+ eval { require Socket::MsgHdr })) {
+ $lei_env = {};
+ ($lei_env->{XDG_RUNTIME_DIR}, $for_destroy) = tmpdir;
+ $ENV{TEST_LEI_DAEMON_PERSIST_DIR} = $lei_env->{XDG_RUNTIME_DIR};
+ run_script([qw(lei daemon-pid)], $lei_env, { 1 => \$lei_daemon_pid });
+ chomp $lei_daemon_pid;
+ $lei_daemon_pid =~ /\A[0-9]+\z/ or die "no daemon pid: $lei_daemon_pid";
+ kill(0, $lei_daemon_pid) or die "kill $lei_daemon_pid: $!";
+ if (my $t = $ENV{GNU_TAIL}) {
+ system("$t --pid=$lei_daemon_pid -F " .
+ "$lei_env->{XDG_RUNTIME_DIR}/lei/errors.log >&2 &");
+ }
+ if (my $strace_cmd = $ENV{STRACE_CMD}) {
+ system("$strace_cmd -p $lei_daemon_pid &");
+ }
+ $owner_pid = $$;
+}
+