Checking for process(es)

Ask a Question related to UNIX Programming, Design and Development.

  1. #1

    Default Checking for process(es)

    Hello,

    Some of the programs i am currently writing (one depends on another) write
    their pids to file (create pid files).
    Now i want to check if the process is still running by reading the
    contents of the pid files and verifying if such pid process exists.

    What is the best approach?
    - I am thinking of checking if there exists a directory /proc/<pid> for
    each pid i want to check if there exists a process.


    P.Krumins
    Peteris Krumins Guest

  2. Similar Questions and Discussions

    1. CFFILE upload error - The process cannot access the filebecause it is being used by another process
      I get this error intermitently when trying to upload a file. <cffile action='upload' ... To make sure there was nothing wrong with the file, i...
    2. #37998 [Asn->Fbk]: Parent process lost MySQLi connection after child process gone
      ID: 37998 Updated by: tony2001@php.net Reported By: dbs at is dot ua -Status: Assigned +Status: ...
    3. Win32::Process, SetProcessAffinityMask for an existing process =perl crash
      Hi! Was planning to use Win32::Process to set the ProcessAffinityMask of some processes but this lead to pure and simple crash of perl.exe. ...
    4. Win32::Process Kill Process in Windows ME
      Hello, I want to kill a Process in Windows ME, which I have started. I have executed the following lines in XP and it works. I execute this in...
    5. Problem: Process.GetProcessesByName : Couldn't get process information from remote machine
      As part of an ASP.NET application, I am creating an Excel spreadsheet using my .NET component. On my machine (win2K) I always get a...
  3. #2

    Default Re: Checking for process(es)

    Peteris Krumins wrote:
    > Hello,
    >
    > Some of the programs i am currently writing (one depends on another) write
    > their pids to file (create pid files).
    > Now i want to check if the process is still running by reading the
    > contents of the pid files and verifying if such pid process exists.
    >
    > What is the best approach?
    > - I am thinking of checking if there exists a directory /proc/<pid> for
    > each pid i want to check if there exists a process.
    Peteris...

    I used that approach in my (Linux) code to see if a named
    application was running. See [url]http://www.iedu.com/mrd/c/pidof.c[/url]

    --
    Morris Dovey
    West Des Moines, Iowa USA
    C links at [url]http://www.iedu.com/c[/url]

    Morris Dovey Guest

  4. #3

    Default Re: Checking for process(es)

    Peteris Krumins wrote:
    > Hello,
    >
    > Some of the programs i am currently writing (one depends on another) write
    > their pids to file (create pid files).
    > Now i want to check if the process is still running by reading the
    > contents of the pid files and verifying if such pid process exists.
    >
    > What is the best approach?
    > - I am thinking of checking if there exists a directory /proc/<pid> for
    > each pid i want to check if there exists a process.
    >
    First, this approach won't work on all flavors of *NIX systems. You
    can do kill(pid,0) to see if the process exists.

    However, that doesn't tell you whether the process that exists is in
    fact the process you think it is. On some systems and conditions a pid
    can be reused quickly so it becomes possible that your pid is referring
    to some other process unrelated to what you think it is.

    I suggest that you have each process create and lock (man lockf) a file
    on a local filesystem. When you want to know if the process exists try
    to lock its file. If you can't get the lock the process is still running.

    -- ced




    --
    Chuck Dillon
    Senior Software Engineer
    NimbleGen Systems Inc.

    Chuck Dillon Guest

  5. #4

    Default Re: Checking for process(es)

    Use ps command or others similar. Because pid can be reused, the
    same pid may mean a totally different process. It is often needed to
    gurantee one (only one) instance of your program is running, otherwise
    restart it. A common practice is to use file lock. If you are really
    dead sure about the pid, you can kill -0 to check its status.

    Hope it helps.

    Lee
    > - I am thinking of checking if there exists a directory /proc/<pid> for
    > each pid i want to check if there exists a process.
    >
    >
    > P.Krumins
    Lee Guest

  6. #5

    Default Re: Checking for process(es)

    Morris Dovey <mrdovey@iedu.com> wrote in news:3F1CAAA5.80303@iedu.com:
    > Peteris Krumins wrote:
    >> Hello,
    >>
    >> Some of the programs i am currently writing (one depends on another)
    >> write their pids to file (create pid files).
    >> Now i want to check if the process is still running by reading the
    >> contents of the pid files and verifying if such pid process exists.
    >>
    >> What is the best approach?
    >> - I am thinking of checking if there exists a directory /proc/<pid>
    >> for each pid i want to check if there exists a process.
    >
    > Peteris...
    >
    > I used that approach in my (Linux) code to see if a named
    > application was running. See [url]http://www.iedu.com/mrd/c/pidof.c[/url]
    >
    Thanks, this was (and other) examples are very valuable.


    P.Krumins
    Peteris Krumins Guest

Posting Permissions

  • You may not post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139