Check-in Number:
|
5078 | |
Date: |
2003-Feb-27 12:37:16 (local)
2003-Feb-27 11:37:16 (UTC) |
User: | thl |
Branch: | |
Comment: |
locking details |
Tickets: |
|
Inspections: |
|
Files: |
|
ossp-pkg/as/as-cui/as-cui.pod 1.17 -> 1.18
--- as-cui.pod 2003/02/25 15:26:49 1.17
+++ as-cui.pod 2003/02/27 11:37:16 1.18
@@ -382,14 +382,51 @@
=head2 ${HOME}/.as/lock
-The lock file contains the dezimal number listing the PID of the process
-that created the lock.
+The existence of the lock file alone identifies a mutual exclusive lock.
+The application will not start if a lock file from any previous run is
+dangling around. To identify who created the lock, where the lock was
+created and to allow verification of obsolete locks, additional
+information is stored in the file. It is assumed that upon detection of
+a foreign lock the application at least prints the human readable "text"
+field to give some hint about what's going on before it terminates.
-B<file> ::= B<magic> B<pid>
+B<file> ::= B<magic> B<entry>*
B<magic> ::= /^%!AS-LOCK-[0-9]\.[0-9]$/
-B<pid > ::= [0-9]+
+B<entry> ::= B<opt-name> " " B<opt-value> "\n"
+
+B<opt-name> ::= "nodename" | "user" | "pid" |
+ "pwname" | "uid" | "text"
+
+B<opt-value> ::= /'[^']*'/ # single-quoted string
+ | /"[^"]*"/ # double-quoted string
+ | /[^\n]+/
+
+B<date> the lock files was created (format see B<date> in ${HOME}/.as/events)
+Example: 2002-02-28
+
+B<time> the lock file was created (format see B<24h-clock-time> in ${HOME}/.as/events)
+Example: 12:30
+
+B<user> who created the lock (format see B<user> in ${HOME}/.as/events)
+Example: joe
+
+B<nodename> from struct utsname.nodename returned by uname(2); same as shell "uname -n"
+Example: dv1.dev.de.cw.net
+
+B<pid> from getpid(2)
+Example: 8923
+
+B<uid> value comes from struct passwd.pw_uid returned by getpwent(2) or, alternativly by getuid(2)
+Example: 2378
+
+B<pwname> from struct passwd.pw_name returned by getpwent(2)
+Example: as-ui
+
+B<text> is created by the application and contains any printable
+information useful by a second caller to understand why execution is
+aborted. Example: "Killroy was here before you!".
=head2 ${HOME}/.as/serial
|
|