Are you looking at the CLI window where duplicati was manually launched with duplicati
command?
Here’s an example of what ps -lp has. You can see that it’s on a terminal, and I guess it writes to there.
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 14837 14833 0 80 0 - 244163 poll_s pts/0 00:00:09 mono-sgen
$ duplicati
Full thread dump:
"Thread Pool Worker" at <unknown> <0xffffffff>
at (wrapper managed-to-native) System.Threading.WaitHandle.Wait_internal (intptr*,int,bool,int) [0x00000] in <533173d24dae460899d2b10975534bb0>:0
at System.Threading.WaitHandle.WaitOneNative (System.Runtime.InteropServices.SafeHandle,uint,bool,bool) [0x00044] in <533173d24dae460899d2b10975534bb0>:0
at System.Threading.WaitHandle.InternalWaitOne (System.Runtime.InteropServices.SafeHandle,long,bool,bool) [0x00014] in <533173d24dae460899d2b10975534bb0>:0
at System.Threading.WaitHandle.WaitOne (long,bool) [0x00000] in <533173d24dae460899d2b10975534bb0>:0
at System.Threading.WaitHandle.WaitOne (int,bool) [0x00019] in <533173d24dae460899d2b10975534bb0>:0
at Duplicati.Server.EventPollNotify.Wait (long,int) [0x00042] in <87f95256fc6a4c3ea353de8d2aacf89b>:0
at Duplicati.Server.WebServer.RESTMethods.RequestInfo.LongPollCheck (Duplicati.Server.EventPollNotify,long&,bool&) [0x00119] in <87f95256fc6a4c3ea353de8d2aacf89b>:0
at Duplicati.Server.WebServer.RESTMethods.ServerState.GET (string,Duplicati.Server.WebServer.RESTMethods.RequestInfo) [0x0000c] in <87f95256fc6a4c3ea353de8d2aacf89b>:0
at Duplicati.Server.WebServer.RESTHandler.DoProcess (Duplicati.Server.WebServer.RESTMethods.RequestInfo,string,string,string) [0x00146] in <87f95256fc6a4c3ea353de8d2aacf89b>:0
at Duplicati.Server.WebServer.RESTHandler.DoProcess (HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession,string,string,string) [0x00009] in <87f95256fc6a4c3ea353de8d2aacf89b>:0
at Duplicati.Server.WebServer.RESTHandler.Process (HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession) [0x000b6] in <87f95256fc6a4c3ea353de8d2aacf89b>:0
at HttpServer.HttpServer.HandleRequest (HttpServer.IHttpClientContext,HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession) [0x0003e] in <bed89f1655ee48029f6d6812f54c58ad>:0
at HttpServer.HttpServer.ProcessRequest (HttpServer.IHttpClientContext,HttpServer.IHttpRequest) [0x00121] in <bed89f1655ee48029f6d6812f54c58ad>:0
at HttpServer.HttpServer.ProcessRequestWrapper (HttpServer.IHttpClientContext,HttpServer.IHttpRequest) [0x0000b] in <bed89f1655ee48029f6d6812f54c58ad>:0
at HttpServer.HttpServer.OnRequest (object,HttpServer.RequestEventArgs) [0x0004b] in <bed89f1655ee48029f6d6812f54c58ad>:0
at (wrapper delegate-invoke) System.EventHandler`1<TEventArgs_REF>.invoke_void_object_TEventArgs (object,TEventArgs_REF) [0x00074] in <533173d24dae460899d2b10975534bb0>:0
at HttpServer.HttpListenerBase.OnRequestReceived (object,HttpServer.RequestEventArgs) [0x00000] in <bed89f1655ee48029f6d6812f54c58ad>:0
at (wrapper delegate-invoke) System.EventHandler`1<TEventArgs_REF>.invoke_void_object_TEventArgs (object,TEventArgs_REF) [0x00074] in <533173d24dae460899d2b10975534bb0>:0
at HttpServer.HttpContextFactory.OnRequestReceived (object,HttpServer.RequestEventArgs) [0x00000] in <bed89f1655ee48029f6d6812f54c58ad>:0
at (wrapper delegate-invoke) System.EventHandler`1<TEventArgs_REF>.invoke_void_object_TEventArgs (object,TEventArgs_REF) [0x00074] in <533173d24dae460899d2b10975534bb0>:0
at HttpServer.HttpClientContext.OnRequestCompleted (object,System.EventArgs) [0x00052] in <bed89f1655ee48029f6d6812f54c58ad>:0
at (wrapper delegate-invoke) <Module>.invoke_void_object_EventArgs (object,System.EventArgs) [0x00074] in <533173d24dae460899d2b10975534bb0>:0
at HttpServer.Parser.HttpRequestParser.OnRequestCompleted () [0x00000] in <bed89f1655ee48029f6d6812f54c58ad>:0
at HttpServer.Parser.HttpRequestParser.Parse (byte[],int,int) [0x00175] in <bed89f1655ee48029f6d6812f54c58ad>:0
at HttpServer.HttpClientContext.OnReceive (System.IAsyncResult) [0x00059] in <bed89f1655ee48029f6d6812f54c58ad>:0
at System.Net.Sockets.SocketAsyncResult/<>c.<Complete>b__27_0 (object) [0x0000b] in <9c6e2cb7ddd8473fa420642ddcf7ce48>:0
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x00008] in <533173d24dae460899d2b10975534bb0>:0
at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00074] in <533173d24dae460899d2b10975534bb0>:0
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in <533173d24dae460899d2b10975534bb0>:0
at (wrapper runtime-invoke) <Module>.runtime_invoke_bool (object,intptr,intptr,intptr) [0x0002a] in <533173d24dae460899d2b10975534bb0>:0
(etc.)
You can apparently also get a clue from ps
as to what the threads are. Here’s an example of doing that:
$ ps -L -p 14837
PID LWP TTY TIME CMD
14837 14837 pts/0 00:00:01 mono-sgen
14837 14838 pts/0 00:00:00 SGen worker
14837 14839 pts/0 00:00:00 Finalizer
14837 14841 pts/0 00:00:00 mono-sgen
14837 14842 pts/0 00:00:00 mono-sgen
14837 14843 pts/0 00:00:00 Timer-Scheduler
14837 14844 pts/0 00:00:00 UpdatePollThrea
14837 14845 pts/0 00:00:00 WorkerThread<IR
14837 14846 pts/0 00:00:00 TaskScheduler
14837 14847 pts/0 00:00:00 mono-sgen
14837 14850 pts/0 00:00:00 mono-sgen
14837 14851 pts/0 00:00:00 Thread Pool I/O
14837 14854 pts/0 00:00:00 TrayIcon Reques
14837 14855 pts/0 00:00:00 TrayIcon Longpo
14837 14858 pts/0 00:00:00 gmain
14837 14861 pts/0 00:00:00 gdbus
14837 17973 pts/0 00:00:00 Thread Pool Wor
14837 18014 pts/0 00:00:00 Thread Pool Wor
14837 18016 pts/0 00:00:00 Thread Pool Wor
14837 18088 pts/0 00:00:00 Timer-Scheduler
14837 18114 pts/0 00:00:00 Thread Pool Wor