Ps command showing different states for same process

I am using HP-UX,KSH

$ jobs -l
[1] + 19377      Running                 nohup ksh cat_Duplicate_Records_Removal.ksh </dev/null >/dev/null 2>&1 &
$ ps -p 19377 -fl
  F S      UID   PID  PPID  C PRI NI             ADDR   SZ            WCHAN    STIME TTY       TIME COMD
401 S   catmgr 19377 19491  0 158 24 e000000a40ace700  325 e000000bc99bdc80 14:29:19 pts/3     0:00 ksh cat_Duplicate_Records_Removal.ksh

as you can see the

 jobs -l 

is showing the process as running.
but the

 ps -p 19377 -fl

is showing the process as stopped (S)

why is it so ?
please help

thank you

S isn't stopped. it's "interruptable sleep". Only 1 process can technically be running at a time on each CPU. T is the code you want to look out for. That means stopped by job control. see man ps for the state codes. Here's the relevant section from GNU/Linux:

PROCESS STATE CODES
       Here are the different values that the s, stat and state output specifiers (header "STAT" or "S") will display to describe the state of a process:

               D    uninterruptible sleep (usually IO)
               R    running or runnable (on run queue)
               S    interruptible sleep (waiting for an event to complete)
               T    stopped, either by a job control signal or because it is being traced
               W    paging (not valid since the 2.6.xx kernel)
               X    dead (should never be seen)
               Z    defunct ("zombie") process, terminated but not reaped by its parent

       For BSD formats and when the stat keyword is used, additional characters may be displayed:

               <    high-priority (not nice to other users)
               N    low-priority (nice to other users)
               L    has pages locked into memory (for real-time and custom IO)
               s    is a session leader
               l    is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
               +    is in the foreground process group
1 Like