Why not to use
strace -p <pid>
where the process is serving terminal (W $J, run set ret=$zu(-100,...) )
or host process in interoperability infrastructure
to check what is wrong from point of view of syscalls.
A quite standard way to figure out what goes wrong.
terminal and service process has different uid,gid.
terminal uid,gid has of logged user
and user make sence have irisusr supplement group in order
to run iris session ok.
service process (in particular BusinessService) uid,gid has irisusr:irisusr.
unless uid and gid has no relationship and use different name.
gid name might be changed in installer, irisusr is 'fixed',
but it might be changed in /etc/passwd.
to know process uid,gid
ps -eo pid,uid,gid,args | grep irisdb
check dir access right from
/data/InterSystems/IRIS/mgr/TEST01CODE
and below.
For zip case, I would use command pipe and one parses output
in order to know the result of operation.
thank - fixed.
https://docs.intersystems.com/irislatest/csp/documatic/%25CSP.Documatic.cls?LIBRARY=%25SYS&CLASSNAME=SYS.Mirror#StopMirror
##class(SYS.Mirror).StopMirror(...)
##class(SYS.Mirror).StartMirror(...)