Running ziti-edge-tunnel on openbmc arm7

I am trying to run ziti-edge-tunnel on an arm7 openbmc controller in run-host mode and it just exits with a exitcode of 0 and doesn’t keep running. Please can anyone help me debug this? I’ve included the output and a strace below in case that helps.

ziti@host:~$  ziti-edge-tunnel run-host --identity-dir /opt/openziti/etc/identities --verbose 5
About to run tunnel service that hosts services... ziti-edge-tunnel
(2500)[        0.000]    INFO ziti-sdk:utils.c:200 ziti_log_set_level() set log level: root=5/VERBOSE
(2500)[        0.000]    INFO ziti-sdk:utils.c:171 ziti_log_init() Ziti C SDK version 1.11.2 @gded9bd4(HEAD) starting at (2026-03-06T12:25:50.677)
(2500)[        0.000]    INFO ziti-edge-tunnel:instance-config.c:72 load_tunnel_status_from_file() Loading config file from /opt/openziti/etc/identities/config.json
(2500)[        0.000]   DEBUG ziti-edge-tunnel:ziti-edge-tunnel.c:1188 init_proxy_connector() proxy_url not set
(2500)[        0.000]    INFO tunnel-sdk:ziti_tunnel.c:60 create_tunneler_ctx() Ziti Tunneler SDK (v1.11.0)
(2500)[        0.000]    INFO ziti-edge-tunnel:ziti-edge-tunnel.c:1067 run_tunneler_loop() Loading identity files from /opt/openziti/etc/identities
(2500)[        0.000]   DEBUG ziti-edge-tunnel:ziti-edge-tunnel.c:395 load_identities() skipping the configuration file: config.json
(2500)[        0.000]   DEBUG ziti-edge-tunnel:ziti-edge-tunnel.c:944 make_socket_path() local group 'ziti' exists, gid=985
(2500)[        0.000]    INFO ziti-edge-tunnel:ziti-edge-tunnel.c:946 make_socket_path() effective group set to 'ziti' (gid=985)
(2500)[        0.004]   DEBUG ziti-edge-tunnel:instance-config.c:117 save_tunnel_status_to_file() Saved current tunnel status into Config file /opt/openziti/etc/identities/config.json
ziti@host:~$  ziti-edge-tunnel run-host --identity-dir /opt/openziti/etc/identities --verbose 6
About to run tunnel service that hosts services... ziti-edge-tunnel
(2519)[        0.000]    INFO ziti-sdk:utils.c:200 ziti_log_set_level() set log level: root=6/TRACE
(2519)[        0.000]    INFO ziti-sdk:utils.c:171 ziti_log_init() Ziti C SDK version 1.11.2 @gded9bd4(HEAD) starting at (2026-03-06T12:25:53.852)
(2519)[        0.000]    INFO ziti-edge-tunnel:instance-config.c:72 load_tunnel_status_from_file() Loading config file from /opt/openziti/etc/identities/config.json
(2519)[        0.000]   DEBUG ziti-edge-tunnel:ziti-edge-tunnel.c:1188 init_proxy_connector() proxy_url not set
(2519)[        0.000]    INFO tunnel-sdk:ziti_tunnel.c:60 create_tunneler_ctx() Ziti Tunneler SDK (v1.11.0)
(2519)[        0.000]    INFO ziti-edge-tunnel:ziti-edge-tunnel.c:1067 run_tunneler_loop() Loading identity files from /opt/openziti/etc/identities
(2519)[        0.000]   TRACE ziti-edge-tunnel:ziti-edge-tunnel.c:384 load_identities() scan dir /opt/openziti/etc/identities, file count: 1
(2519)[        0.000]   TRACE ziti-edge-tunnel:ziti-edge-tunnel.c:388 load_identities() processing file: config.json 1
(2519)[        0.000]   DEBUG ziti-edge-tunnel:ziti-edge-tunnel.c:395 load_identities() skipping the configuration file: config.json
(2519)[        0.000]   DEBUG ziti-edge-tunnel:ziti-edge-tunnel.c:944 make_socket_path() local group 'ziti' exists, gid=985
(2519)[        0.000]    INFO ziti-edge-tunnel:ziti-edge-tunnel.c:946 make_socket_path() effective group set to 'ziti' (gid=985)
(2519)[        0.005]   DEBUG ziti-edge-tunnel:instance-config.c:117 save_tunnel_status_to_file() Saved current tunnel status into Config file /opt/openziti/etc/identities/config.json
(2519)[        0.005]   TRACE ziti-edge-tunnel:instance-config.c:121 save_tunnel_status_to_file() Cleaning up resources used for the backup of tunnel config file /opt/openziti/etc/identities/config.json
ziti@host:~$ echo $?
0
ziti@host:~$ uname -a
Linux host 5.15.180 #1 SMP Wed May 14 21:44:14 UTC 2025 armv7l GNU/Linux

ziti@host:~$  ziti-edge-tunnel version
v1.11.0

ziti@host:~$ strace ziti-edge-tunnel run-host --identity-dir /opt/openziti/etc/identities --verbose 6
execve("/usr/bin/ziti-edge-tunnel", ["ziti-edge-tunnel", "run-host", "--identity-dir", "/opt/openziti/etc/identities", "--verbose", "6"], 0x7eaf1da4 /* 13 vars */) = 0
brk(NULL)                               = 0x2aab000
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76fa7000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/github/workspace/build/lib/tls/v7l/vfp/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/github/workspace/build/lib/tls/v7l/vfp", 0x7ed72150) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/github/workspace/build/lib/tls/v7l/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/github/workspace/build/lib/tls/v7l", 0x7ed72150) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/github/workspace/build/lib/tls/vfp/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/github/workspace/build/lib/tls/vfp", 0x7ed72150) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/github/workspace/build/lib/tls/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/github/workspace/build/lib/tls", 0x7ed72150) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/github/workspace/build/lib/v7l/vfp/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/github/workspace/build/lib/v7l/vfp", 0x7ed72150) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/github/workspace/build/lib/v7l/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/github/workspace/build/lib/v7l", 0x7ed72150) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/github/workspace/build/lib/vfp/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/github/workspace/build/lib/vfp", 0x7ed72150) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/github/workspace/build/lib/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/github/workspace/build/lib", 0x7ed72150) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/v7l/vfp/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/v7l/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/vfp/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v7l/vfp/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v7l/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "vfp/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=9866, ...}) = 0
mmap2(NULL, 9866, PROT_READ, MAP_PRIVATE, 3, 0) = 0x76fa4000
close(3)                                = 0
openat(AT_FDCWD, "/lib/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0@Y\306M4\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=98228, ...}) = 0
mmap2(NULL, 168328, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76f4d000
mprotect(0x76f64000, 61440, PROT_NONE)  = 0
mmap2(0x76f73000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x76f73000
mmap2(0x76f75000, 4488, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x76f75000
close(3)                                = 0
openat(AT_FDCWD, "tls/v7l/vfp/libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/v7l/libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/vfp/libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v7l/vfp/libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v7l/libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "vfp/libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0(\v\345M4\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=11120, ...}) = 0
mmap2(NULL, 73780, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76f3a000
mprotect(0x76f3c000, 61440, PROT_NONE)  = 0
mmap2(0x76f4b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x76f4b000
close(3)                                = 0
openat(AT_FDCWD, "tls/v7l/vfp/librt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/v7l/librt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/vfp/librt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/librt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v7l/vfp/librt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v7l/librt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "vfp/librt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "librt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/librt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0p\33\311M4\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=28060, ...}) = 0
mmap2(NULL, 90392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76f23000
mprotect(0x76f29000, 61440, PROT_NONE)  = 0
mmap2(0x76f38000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5000) = 0x76f38000
close(3)                                = 0
openat(AT_FDCWD, "tls/v7l/vfp/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/v7l/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/vfp/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v7l/vfp/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v7l/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "vfp/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\300\32\366M4\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=81008, ...}) = 0
mmap2(NULL, 143584, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76eff000
mprotect(0x76f12000, 61440, PROT_NONE)  = 0
mmap2(0x76f21000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12000) = 0x76f21000
close(3)                                = 0
openat(AT_FDCWD, "tls/v7l/vfp/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/v7l/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/vfp/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v7l/vfp/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v7l/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "vfp/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\10\222\313M4\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=363440, ...}) = 0
mmap2(NULL, 426056, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76e96000
mprotect(0x76eee000, 61440, PROT_NONE)  = 0
mmap2(0x76efd000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x57000) = 0x76efd000
close(3)                                = 0
openat(AT_FDCWD, "tls/v7l/vfp/libresolv.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/v7l/libresolv.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/vfp/libresolv.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/libresolv.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v7l/vfp/libresolv.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v7l/libresolv.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "vfp/libresolv.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "libresolv.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/libresolv.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\244-?N4\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=77460, ...}) = 0
mmap2(NULL, 149768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76e71000
mprotect(0x76e83000, 61440, PROT_NONE)  = 0
mmap2(0x76e92000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0x76e92000
mmap2(0x76e94000, 6408, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x76e94000
close(3)                                = 0
openat(AT_FDCWD, "tls/v7l/vfp/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/v7l/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/vfp/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v7l/vfp/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v7l/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "vfp/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/tls/v7l/vfp/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib/tls/v7l/vfp", 0x7ed720f0)  = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/tls/v7l/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib/tls/v7l", 0x7ed720f0)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/tls/vfp/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib/tls/vfp", 0x7ed720f0)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/tls/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib/tls", 0x7ed720f0)          = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/v7l/vfp/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib/v7l/vfp", 0x7ed720f0)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/v7l/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib/v7l", 0x7ed720f0)          = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/vfp/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib/vfp", 0x7ed720f0)          = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\f\310\262M4\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1275684, ...}) = 0
mmap2(NULL, 1342220, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76d29000
mprotect(0x76e5c000, 65536, PROT_NONE)  = 0
mmap2(0x76e6c000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x133000) = 0x76e6c000
mmap2(0x76e6f000, 6924, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x76e6f000
close(3)                                = 0
mmap2(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76fa1000
set_tls(0x76fa1550)                     = 0
mprotect(0x76e6c000, 4096, PROT_READ)   = 0
mprotect(0x76e92000, 4096, PROT_READ)   = 0
mprotect(0x76efd000, 4096, PROT_READ)   = 0
mprotect(0x76f21000, 4096, PROT_READ)   = 0
mprotect(0x76f73000, 4096, PROT_READ)   = 0
mprotect(0x76f38000, 4096, PROT_READ)   = 0
mprotect(0x76f4b000, 4096, PROT_READ)   = 0
mprotect(0x88f000, 270336, PROT_READ)   = 0
mprotect(0x76fa9000, 4096, PROT_READ)   = 0
munmap(0x76fa4000, 9866)                = 0
set_tid_address(0x76fa1078)             = 5315
set_robust_list(0x76fa1080, 12)         = 0
rt_sigaction(SIGRTMIN, {sa_handler=0x76f52304, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x76d5c1c0}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {sa_handler=0x76f523c0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0x76d5c1c0}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
ugetrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
brk(NULL)                               = 0x2aab000
brk(0x2acc000)                          = 0x2acc000
clock_getres_time64(CLOCK_MONOTONIC_COARSE, {tv_sec=0, tv_nsec=10000000}) = 0
clock_gettime64(CLOCK_MONOTONIC, {tv_sec=2519617, tv_nsec=434380465}) = 0
epoll_create1(EPOLL_CLOEXEC)            = 3
pipe2([4, 5], O_CLOEXEC)                = 0
write(5, "*", 1)                        = 1
futex(0x8efbb8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
pipe2([6, 7], O_NONBLOCK|O_CLOEXEC)     = 0
eventfd2(0, EFD_CLOEXEC|EFD_NONBLOCK)   = 8
access("/opt/openziti/etc/identities", F_OK) = 0
lstat64("/opt", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat64("/opt/openziti", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat64("/opt/openziti/etc", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat64("/opt/openziti/etc/identities", {st_mode=S_IFDIR|0770, st_size=0, ...}) = 0
write(2, "About to run tunnel service that"..., 68About to run tunnel service that hosts services... ziti-edge-tunnel
) = 68
futex(0x8efbc0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
getpid()                                = 5315
write(2, "(5315)[        0.000]    INFO zi"..., 100(5315)[        0.000]    INFO ziti-sdk:utils.c:200 ziti_log_set_level() set log level: root=6/TRACE
) = 100
clock_gettime64(CLOCK_REALTIME, {tv_sec=1772800274, tv_nsec=120942852}) = 0
openat(AT_FDCWD, "/etc/localtime", O_RDONLY|O_CLOEXEC) = 9
fstat64(9, {st_mode=S_IFREG|0644, st_size=111, ...}) = 0
fstat64(9, {st_mode=S_IFREG|0644, st_size=111, ...}) = 0
read(9, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1024) = 111
_llseek(9, -60, [51], SEEK_CUR)         = 0
read(9, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1024) = 60
close(9)                                = 0
write(2, "(5315)[        0.000]    INFO zi"..., 147(5315)[        0.000]    INFO ziti-sdk:utils.c:171 ziti_log_init() Ziti C SDK version 1.11.2 @gded9bd4(HEAD) starting at (2026-03-06T12:31:14.120)
) = 147
write(2, "(5315)[        0.000]    INFO zi"..., 165(5315)[        0.000]    INFO ziti-edge-tunnel:instance-config.c:72 load_tunnel_status_from_file() Loading config file from /opt/openziti/etc/identities/config.json
) = 165
openat(AT_FDCWD, "/opt/openziti/etc/identities/config.json", O_RDONLY) = 9
mmap2(NULL, 1052672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76c28000
fstat64(9, {st_mode=S_IFREG|0644, st_size=244, ...}) = 0
read(9, "{\n\t\"Active\":false,\n\t\"Duration\":3"..., 4096) = 244
read(9, "", 4096)                       = 0
getrandom("\x24\x5e\xe0\xbe", 4, GRND_NONBLOCK) = 4
clock_gettime64(CLOCK_REALTIME, {tv_sec=1772800274, tv_nsec=124198545}) = 0
close(9)                                = 0
munmap(0x76c28000, 1052672)             = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x76d5c1b0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
readlink("/proc/self/exe", "/usr/bin/ziti-edge-tunnel", 4095) = 25
lstat64("/usr", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat64("/usr/bin", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat64("/usr/bin/openssl.cnf", 0x7ed71650) = -1 ENOENT (No such file or directory)
write(2, "(5315)[        0.000]   DEBUG zi"..., 112(5315)[        0.000]   DEBUG ziti-edge-tunnel:ziti-edge-tunnel.c:1188 init_proxy_connector() proxy_url not set
) = 112
write(2, "(5315)[        0.000]    INFO tu"..., 108(5315)[        0.000]    INFO tunnel-sdk:ziti_tunnel.c:60 create_tunneler_ctx() Ziti Tunneler SDK (v1.11.0)
) = 108
futex(0x8db2a0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
rt_sigaction(SIGINT, {sa_handler=0x4f1cdd, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x76d5c1b0}, NULL, 8) = 0
rt_sigaction(SIGTERM, {sa_handler=0x4f1cdd, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x76d5c1b0}, NULL, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=0x4f1cdd, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x76d5c1b0}, NULL, 8) = 0
rt_sigaction(SIGABRT, {sa_handler=0x4f1c25, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x76d5c1b0}, NULL, 8) = 0
rt_sigaction(SIGSEGV, {sa_handler=0x4f1c25, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x76d5c1b0}, NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
read(4, "*", 1)                         = 1
rt_sigaction(SIGUSR1, {sa_handler=0x771899, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x76d5c1b0}, NULL, 8) = 0
write(5, "*", 1)                        = 1
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
write(2, "(5315)[        0.000]    INFO zi"..., 148(5315)[        0.000]    INFO ziti-edge-tunnel:ziti-edge-tunnel.c:1067 run_tunneler_loop() Loading identity files from /opt/openziti/etc/identities
) = 148
mmap2(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x76528000
mprotect(0x76529000, 8388608, PROT_READ|PROT_WRITE) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8)   = 0
clone(child_stack=0x76d27698, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tid=[5316], tls=0x76d28120, child_tidptr=0x76d27c48) = 5316
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
mmap2(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x75d27000
mprotect(0x75d28000, 8388608, PROT_READ|PROT_WRITE) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8)   = 0
clone(child_stack=0x76526698, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tid=[5317], tls=0x76527120, child_tidptr=0x76526c48) = 5317
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
mmap2(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x75526000
mprotect(0x75527000, 8388608, PROT_READ|PROT_WRITE) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8)   = 0
clone(child_stack=0x75d25698, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tid=[5318], tls=0x75d26120, child_tidptr=0x75d25c48) = 5318
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
mmap2(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x74d25000
mprotect(0x74d26000, 8388608, PROT_READ|PROT_WRITE) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8)   = 0
clone(child_stack=0x75524698, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tid=[5319], tls=0x75525120, child_tidptr=0x75524c48) = 5319
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
futex(0x7ed7140c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x7ed7140c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x7ed7140c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x8ef920, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x8ef968, FUTEX_WAKE_PRIVATE, 1)  = 1
socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 9
connect(9, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = 0
send(9, "\2\0\0\0\f\0\0\0\6\0\0\0group\0", 18, MSG_NOSIGNAL) = 18
poll([{fd=9, events=POLLIN|POLLERR|POLLHUP}], 1, 5000) = 1 ([{fd=9, revents=POLLIN|POLLHUP}])
recvmsg(9, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="", iov_len=6}, {iov_base="", iov_len=8}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC) = 0
close(9)                                = 0
socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 9
connect(9, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = 0
send(9, "\2\0\0\0\2\0\0\0\5\0\0\0ziti\0", 17, MSG_NOSIGNAL) = 17
poll([{fd=9, events=POLLIN|POLLERR|POLLHUP}], 1, 5000) = 1 ([{fd=9, revents=POLLIN|POLLHUP}])
read(9, "\2\0\0\0\1\0\0\0\5\0\0\0\2\0\0\0\331\3\0\0\0\0\0\0", 24) = 24
read(9, "ziti\0x\0", 7)                 = 7
close(9)                                = 0
write(2, "(5315)[        0.000]   DEBUG zi"..., 124(5315)[        0.000]   DEBUG ziti-edge-tunnel:ziti-edge-tunnel.c:944 make_socket_path() local group 'ziti' exists, gid=985
) = 124
futex(0x76e6f010, FUTEX_WAKE_PRIVATE, 1) = 1
getpid((5315)[        0.000]   TRACE ziti-edge-tunnel:ziti-edge-tunnel.c:384 load_identities() scan dir /opt/openziti/etc/identities, file count: 1
(5315)[        0.000]   TRACE ziti-edge-tunnel:ziti-edge-tunnel.c:388 load_identities() processing file: config.json 1
(5315)[        0.000]   DEBUG ziti-edge-tunnel:ziti-edge-tunnel.c:395 load_identities() skipping the configuration file: config.json
)                                = 5315
tgkill(5315, 5319, SIGRT_1)             = 0
getpid()                                = 5315
tgkill(5315, 5318, SIGRT_1)             = 0
getpid()                                = 5315
tgkill(5315, 5317, SIGRT_1)             = 0
getpid()                                = 5315
tgkill(5315, 5316, SIGRT_1)             = 0
setgid32(985)                           = 0
write(2, "(5315)[        0.000]    INFO zi"..., 129(5315)[        0.000]    INFO ziti-edge-tunnel:ziti-edge-tunnel.c:946 make_socket_path() effective group set to 'ziti' (gid=985)
) = 129
mkdir("/tmp/.ziti", 0750)               = -1 EEXIST (File exists)
statx(AT_FDCWD, "/tmp/.ziti", AT_STATX_SYNC_AS_STAT|AT_SYMLINK_NOFOLLOW, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0750, stx_size=80, ...}) = 0
geteuid32()                             = 1013
unlink("/tmp/.ziti/ziti-edge-tunnel.sock") = 0
openat(AT_FDCWD, "/dev/null", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 9
socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 10
bind(10, {sa_family=AF_UNIX, sun_path="/tmp/.ziti/ziti-edge-tunnel.sock"}, 110) = 0
fchmod(10, 0666)                        = 0
getsockname(10, {sa_family=AF_UNIX, sun_path="/tmp/.ziti/ziti-edge-tunnel.sock"}, [110->35]) = 0
chmod("/tmp/.ziti/ziti-edge-tunnel.sock", 0666) = 0
listen(10, 0)                           = 0
unlink("/tmp/.ziti/ziti-edge-tunnel-event.sock") = 0
socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 11
bind(11, {sa_family=AF_UNIX, sun_path="/tmp/.ziti/ziti-edge-tunnel-event.sock"}, 110) = 0
fchmod(11, 0666)                        = 0
getsockname(11, {sa_family=AF_UNIX, sun_path="/tmp/.ziti/ziti-edge-tunnel-event.sock"}, [110->41]) = 0
chmod("/tmp/.ziti/ziti-edge-tunnel-event.sock", 0666) = 0
listen(11, 0)                           = 0
clock_gettime64(CLOCK_MONOTONIC, {tv_sec=2519617, tv_nsec=457615388}) = 0
epoll_ctl(3, EPOLL_CTL_ADD, 6, {EPOLLIN, {u32=6, u64=6}}) = 0
epoll_ctl(3, EPOLL_CTL_ADD, 8, {EPOLLIN, {u32=8, u64=8}}) = 0
epoll_ctl(3, EPOLL_CTL_ADD, 10, {EPOLLIN, {u32=10, u64=10}}) = 0
epoll_ctl(3, EPOLL_CTL_ADD, 11, {EPOLLIN, {u32=11, u64=11}}) = 0
epoll_pwait(3, [{EPOLLIN, {u32=8, u64=8}}], 1024, -1, NULL, 8) = 1
clock_gettime64(CLOCK_MONOTONIC, {tv_sec=2519617, tv_nsec=458603898}) = 0
read(8, "\1\0\0\0\0\0\0\0", 1024)       = 8
clock_gettime64(CLOCK_REALTIME, {tv_sec=1772800274, tv_nsec=142278280}) = 0
openat(AT_FDCWD, "/opt/openziti/etc/identities/config.json", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 12
fstat64(12, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
write(12, "{\n\t\"Active\":false,\n\t\"Duration\":1"..., 245) = 245
close(12)                               = 0
write(2, "(5315)[        0.024]   DEBUG zi"..., 184(5315)[        0.024]   DEBUG ziti-edge-tunnel:instance-config.c:117 save_tunnel_status_to_file() Saved current tunnel status into Config file /opt/openziti/etc/identities/config.json
) = 184
write(2, "(5315)[        0.024]   TRACE zi"..., 203(5315)[        0.024]   TRACE ziti-edge-tunnel:instance-config.c:121 save_tunnel_status_to_file() Cleaning up resources used for the backup of tunnel config file /opt/openziti/etc/identities/config.json
) = 203
clock_gettime64(CLOCK_MONOTONIC, {tv_sec=2519617, tv_nsec=461571855}) = 0
close(4)                                = 0
close(5)                                = 0
futex(0x8ef968, FUTEX_WAKE_PRIVATE, 1)  = 1
futex(0x8ef924, FUTEX_WAKE_PRIVATE, 1)  = 1
futex(0x76d27c48, FUTEX_WAIT, 5316, NULL) = 0
exit_group(0)                           = ?
+++ exited with 0 +++

I needed to enroll an identity to keep the process running. So the documentation here Manual Installation | NetFoundry Documentation was wrong, I couldn’t run the binary and then add a identity. I needed to enroll an identitiy first.