home *** CD-ROM | disk | FTP | other *** search
/ The Developer Connection…ice Driver Kit for OS/2 3 / DEV3-D1.ISO / prodtool / pmtimer / timexec.scr < prev   
Encoding:
Text File  |  1994-03-03  |  13.1 KB  |  444 lines

  1. .se TIMEXEC  'TIMEXEC
  2. .se TIMEDATA 'TIMEXEC.ADM
  3. .se TIMERMD  'TIMEXEC.RMD
  4. .se PMCAL    'PMCAL
  5. .se DPATH    'DPATH
  6. .se PATH     'PATH
  7. :GDOC SEC = 'Internal'.
  8. .***********************************************
  9. .*                                                                    *
  10. .* This document may be formatted with BOOKMASTER (suggested),        *
  11. .* or with ISIL release 4.                                            *
  12. .*                                                                    *
  13. .*   Appropriate BookMaster options are:                              *
  14. .*                                                                    *
  15. .*     LIB(EDFLIB10)                                                  *
  16. .*     PROFILE(EDFPRF10)                                              *
  17. .*     TWOPASS                                                        *
  18. .*                                                                    *
  19. .*   Appropriate ISIL 4 options are:                                  *
  20. .*                                                                    *
  21. .*     LIB(I40LIB)                                                    *
  22. .*     PROFILE(I40PROF)                                               *
  23. .*     TWOPASS                                                        *
  24. .*                                                                    *
  25. .*********************************************************************
  26. .*
  27. .*
  28. .* Common (PC and Host) definitions
  29. .* Try to get special symbols to show up in a sensible way.
  30. .if &E'&bslash = 0  .se bslash = \
  31. .if &E'&odq    = 0  .se odq    = '"'
  32. .if &E'&cdq    = 0  .se cdq    = '"'
  33. .if &E'&lbrk   = 0  .se lbrk   = [
  34. .if &E'&rbrk   = 0  .se rbrk   = ]
  35. .if &E'&lbrc   = 0  .se lbrc   = {
  36. .if &E'&rbrc   = 0  .se rbrc   = }
  37. .if &E'&emdash = 0  .se emdash = '--'
  38. .if &E'&hat    = 0  .se hat    = '^'
  39. .*
  40. .rc 1 |
  41. .*
  42. .if &$pass = 1
  43. .th .ty Document revision: &revdate.
  44. .th .ty Logical output device is &$LDEV
  45. .th .ty Output destination is &$OUT
  46. .th .ty Physical output device is &$PDEV
  47. .th .ty System is &$SYS
  48. .se prdate = '&date.
  49. .se day1   = 'Sunday
  50. .se day2   = 'Monday
  51. .se day3   = 'Tuesday
  52. .se day4   = 'Wednesday
  53. .se day5   = 'Thursday
  54. .se day6   = 'Friday
  55. .se day7   = 'Saturday
  56. .se today  = &day&SYSDAYOFW
  57. .*
  58. .* Leave the following tag as is.
  59. :frontm.
  60. .* Leave the following tag as is.
  61. :titlep.
  62. .*
  63. .* Place the title of your document here.   This tag may be repeated.
  64. .* If your title consists of more than one input line, repeat the tag.
  65. :TITLE.TIMEXEC - a facility to allow for TIMed EXECution of programs
  66. .*********************************************************************
  67. .*                        Repeatable Group                           *
  68. .*********************************************************************
  69. :AUTHOR.Ralph E. Yozzo
  70. :date.April 25, 1989.
  71. :address.
  72. :aline.IBM Research
  73. :aline.T. J. Watson Research Center
  74. :aline.Yorktown Heights, NY  10598
  75. :aline.Document formatted at &time. on &today. &prdate.
  76. :eaddress.
  77. .*********************************************************************
  78. .*                       End Repeatable Group                        *
  79. .*********************************************************************
  80. .*
  81. .* Leave the following tag as is.
  82. :etitlep.
  83. .*********************************************************************
  84. .*                    DOCUMENT ABSTRACT                              *
  85. .*********************************************************************
  86. .* The abstract will be placed on the title page.
  87. .* If you DO NOT have an abstract, delete this tag.
  88. :ABSTRACT.
  89. .* Place the contents of the abstract here, or delete if no abstract
  90. :p.
  91. This program allows one to schedule the periodic execution of
  92. programs.
  93. The format of the control file allows one to schedule events
  94. in a large variety of ways.  For example, programs
  95. can be executed weekly, daily,  monthly, on only certain
  96. days or hours.  The format is described in detail in the
  97. TIMEXEC documentation.
  98.  
  99. Such a program is useful in many applications.  A few sample applications
  100. follow&gml.
  101. :ul.
  102. :li.backing up of a disk periodically
  103. :li.sending messages periodically
  104. :li.running diagnostics on the disk
  105. :li.logging statistics on usage of a resource such as
  106. :ul.
  107. :li.Local Area Networks
  108. :li.Host data bases
  109. :eul.
  110. :eul.
  111. :p.
  112. In addition, there is a PM front end available called
  113. SCHEDULE.EXE.  This program creates TIMEXEC control
  114. files for the users.
  115. SCHEDULE.EXE is part of the PMCAL PACKAGE.
  116. .*
  117. .* Delete this tag if you DO NOT want a table of contents
  118. :TOC.
  119. .* Delete this tag if you DO NOT want a list of figures
  120. .*:FIGLIST.
  121. .*
  122. .*********************************************************************
  123. .*                      BODY OF DOCUMENT                             *
  124. .*********************************************************************
  125. .* Leave the following tag as is. Place the contents of your
  126. .* DOCUMENT after this tag
  127. .*
  128. :body.
  129. .* Place contents of your DOCUMENT here
  130. :h1.Genesis
  131. :p.
  132. This program is born from the idea that one needs to perform
  133. certain actions periodically.  These actions involve the execution
  134. of programs.  A computer should be capable of carrying on these recurrent
  135. events without manual intervention.
  136. :p.
  137. From this idea, springs forth the &TIMEXEC. program.
  138. :h1.Program Installation
  139. :h2.Placement of &TIMEXEC.
  140. :p.Place the &TIMEXEC. program files in a subdirectory
  141. that is referenced by the &PATH.
  142. environment variable.
  143. :h2.Program invocation
  144. :p.
  145. To start &TIMEXEC.
  146. issue the following command at an os/2 command prompt&gml.
  147. :xmp.
  148. &TIMEXEC.
  149. :exmp.
  150. :p.
  151. In order to end the execution of &TIMEXEC.
  152. press Ctrl-Break in the session in which it was started.
  153. :p.
  154. If the program was detached,
  155. then kill its process id.
  156. :h2.Killing the TIMEXEC process.
  157. :p.Use the following command to kill a running instance of TIMEXEC.
  158. :xmp.
  159. timexec -k
  160. :exmp.
  161.  
  162.  
  163. :p.To find the process id of the detached TIMEXEC process
  164. issue the following command
  165. :xmp.
  166. timexec -q
  167. :exmp.
  168. :p.
  169. This command will display the detached TIMEXEC process
  170. id information (i.e., provided the  TIMEXEC process is running)
  171. :p.
  172. To kill the  TIMEXEC process, use a utility
  173. such as KILL in the PROTUTIL PACKAGE and kill the
  174. displayed process id.
  175. :p.
  176. An sample scenario follows&gml.
  177. First, we shall find the TIMEXEC process id.
  178. For purpose of illustration, let us assume the
  179. TIMEXEC process id is 89.
  180. The command that we issue is&gml.
  181. :xmp.
  182. timexec -q
  183. :exmp.
  184. :p.
  185. This command displays the following information&gml.
  186. :xmp.
  187. Process id is 89.
  188. :exmp.
  189. :p.
  190. Then we issue the following command to kill TIMEXEC.
  191.  
  192. :xmp.
  193. kill 89
  194. :exmp.
  195. :h2.File name convention
  196. :p.We look for a file called &TIMEDATA..  This file contains
  197. the information that is used to schedule the recurring events.
  198. :p.All &TIMEDATA. files along the DPATH are loaded.
  199. :p.The file called &TIMERMD.. is used to  support
  200. the &PMCAL. program which is available via PCTOOLS.
  201. :p.
  202. TIMEXEC.RMD is a file that PMCAL creates.
  203. It is used as a communication vehicle between PMCAL and TIMEXEC.
  204. :p.
  205. PMCAL will create the TIMEXEC.RMD whenever a person has
  206. appointments scheduled for the current day.
  207. :p.
  208. The entries start the REMINDER program with the appropriate
  209. text information.
  210. :p.
  211. Therefore, the user should not have to worry about the
  212. TIMEXEC.RMD file.  The TIMEXEC.RMD file is recreated every day
  213. from the PMCAL database and also it is recreated every time
  214. an entry is added to the database for the current day.
  215.  
  216.  
  217. :h2.Data file format
  218. :p.The format of the file is as shown on page :spotref refid=FORMAT0..
  219. :spot id=FORMAT0.
  220. :dl tsize=20.
  221. :dthd.Entry
  222. :ddhd.Explanation
  223. :dt.hour
  224. :dd.(0-23)
  225. :dt.minute
  226. :dd.(0-59)
  227. :dt.weekday of the month
  228. :dd.(1-5 with 1 = First ).
  229. This entry specifies the week in which the entry should be considered
  230. valid.
  231. We also allow the keywords
  232. :ul.
  233. :li.first
  234. :li.second
  235. :li.third
  236. :li.fourth
  237. :li.fifth
  238. :eul.
  239. :dt.day of the week
  240. :dd.(1-7 with 1 = Monday)
  241. This entry specifies the day of the week in which the entry should be considered
  242. valid.
  243. We also allow the keywords
  244. :ul.
  245. :li.monday
  246. :li.tueday
  247. :li.wednesday
  248. :li.thursday
  249. :li.friday
  250. :li.saturday
  251. :li.sunday
  252. :eul.
  253. :dt.month of the year
  254. :dd.(1-12)
  255. This entry specifies the month of the year in which the entry should be considered
  256. valid.
  257. We also allow the keywords
  258. :ul.
  259. :li.january
  260. :li.february
  261. :li.march
  262. :li.april
  263. :li.may
  264. :li.june
  265. :li.july
  266. :li.august
  267. :li.september
  268. :li.october
  269. :li.november
  270. :li.december
  271. :eul.
  272. :dt.day of the month
  273. :dd.(1-31)
  274. This entry specifies the day of the month in which the entry should be considered
  275. valid.
  276. :dt.year
  277. :dd.(1970-)
  278. This entry specifies the year in which the entry should be considered
  279. valid.
  280. :edl.
  281. :p.
  282. Each of these patterns may contain:
  283. :ul.
  284. :li.a number in the range above
  285. :li.two numbers separated by a minus meaning a range inclusive
  286. :li.a list of numbers separated by commas meaning any of the numbers
  287. :li.an asterisk meaning all legal values
  288. :eul.
  289. :h3.An example &TIMEDATA. file
  290. :xmp.
  291. ; hour minute nth_week week_day month month_day year command
  292. * * * Sunday,Saturday * *    1989 d:\src\shelldll\beep
  293. * * * * * *                  1989 d:\src\shelldll\beep 100  x
  294. * 1,2 * * * *                1989 d:\src\shelldll\beep 200  x
  295. * * first friday,saturday * *       1989 d:\src\shelldll\beep 300  x
  296. * * * * mar,apr,may *        1989 d:\src\shelldll\beep 400  x
  297. 7 30 first monday october  * 1989 d:\src\shelldll\beep 500  x
  298. 2 0  fourth sunday october * 1989 timer Fall Backward
  299. 2 0  first  sunday april   * 1989 timer Spring Forward
  300. :exmp.
  301. :p.We shall explain each entry.
  302.  
  303. .sp 2
  304. :xmp.
  305. * * * Sunday,Saturday * *    1989 d:\src\shelldll\beep
  306. :exmp.
  307. :p.This entry tells us to execute the d:\src\shelldll\beep
  308. every minute during
  309. every Sunday and Saturday
  310. in 1989.
  311. .sp 2
  312.  
  313. .sp 2
  314. :xmp.
  315. * * * * * *                  1989 d:\src\shelldll\beep 100  x
  316. :exmp.
  317. :p.This entry tells us to execute the d:\src\shelldll\beep
  318. and pass the parameter "100 x",
  319. every minute
  320. in 1989.
  321. .sp 2
  322.  
  323. .sp 2
  324. :xmp.
  325. * 1,2 * * * *                1989 d:\src\shelldll\beep 200  x
  326. :exmp.
  327. :p.This entry tells us to execute the d:\src\shelldll\beep
  328. and pass the parameter "200 x",
  329. every hour at 1 minute after the hour
  330. and 2 minutes after the hour
  331. in 1989.
  332. .sp 2
  333.  
  334. .sp 2
  335. :xmp.
  336. * * first friday,saturday * *       1989 d:\src\shelldll\beep 300  x
  337. :exmp.
  338. :p.This entry tells us to execute the d:\src\shelldll\beep
  339. and pass the parameter "300 x",
  340. every minute
  341. on every first friday
  342. and saturday
  343. in 1989.
  344. .sp 2
  345.  
  346. .sp 2
  347. :xmp.
  348. * * * * mar,apr,may *        1989 d:\src\shelldll\beep 400  x
  349. :exmp.
  350. :p.This entry tells us to execute the d:\src\shelldll\beep
  351. and pass the parameter "400 x",
  352. every minute
  353. in march and april and may
  354. in 1989.
  355. .sp 2
  356.  
  357. .sp 2
  358. :xmp.
  359. 7 30 first monday october  * 1989 d:\src\shelldll\beep 500  x
  360. :exmp.
  361. :p.This entry tells us to execute the d:\src\shelldll\beep
  362. and pass the parameter "500 x",
  363. on the first monday
  364. in october
  365. in 1989
  366. at 7:30am.
  367. .sp 2
  368.  
  369. .sp 2
  370. :xmp.
  371. 2 0  fourth sunday october * * timer Fall Backward
  372. :exmp.
  373. :p.This entry tells us to set our timer back one hour
  374. on the fourth sunday
  375. in october
  376. at 2:00am.
  377. .sp 2
  378.  
  379. .sp 2
  380. :xmp.
  381. 2 0  first  sunday april   * 1989 timer Spring Forward
  382. :exmp.
  383. :p.This entry tells us to set our timer forward one hour
  384. on the first sunday
  385. in april
  386. at 2:00am.
  387. .sp 2
  388.  
  389. .*  20 Jun 1989 23:31:41 (EST)
  390. :h2.Execution of TIMEXEC programs
  391. :h3.How TIMEXEC executes programs
  392. :p.
  393. TIMEXEC should be executed in a detached session.
  394. :xmp.
  395. detach timexec
  396. :exmp.
  397. If TIMEXEC is detached then any program that TIMEXEC executes
  398. which sends output to the standard output device shall be lost
  399. unless the output is redirected to a file.
  400. :xmp.
  401. dir >log
  402. :exmp.
  403.  
  404. :p.
  405. If timexec is executed in a foreground session then
  406. programs that are executed will display information in the
  407. session where TIMEXEC is running.
  408.  
  409. :h2.TIMEXEC questions and answers
  410. :h3.Question
  411. :p.
  412. The  documentation specifies the use of two files,  TIMEXEC.ADM
  413. and TIMEXEC.RMD.  Only timexec.adm was included with the package.
  414. What is the difference between the two? Do they have the same format ?
  415. PMCAL is also mentioned, is this an example? or do we need it to run
  416. the package ?
  417.  
  418. :h3.Answer
  419. :p.
  420. The TIMEXEC.ADM file is the file that a user would edit.
  421. The TIMEXEC.RMD file is created by PMCAL.  (It is not needed.)
  422. PMCAL assumes that the TIMEXEC.RMD can be deleted and
  423. recreated at any point.  This is the reason that a person
  424. should not add entries to the TIMEXEC.RMD file.
  425.  
  426. The format is the same for both the TIMEXEC.ADM and the TIMEXEC.RMD
  427. PMCAL is not needed to use TIMEXEC.  However, PMCAL's  "Timer Control
  428. Center" Menu is a nice front-end to TIMEXEC.
  429.  
  430. :h2.TIMEXEC change history
  431. :ul.
  432. :li.11/08/91- TIMEXEC updated to display the name of the
  433. command and the parameters as it executes it.
  434. :eul.
  435.  
  436. :backm.
  437. :appendix.
  438. .*********************************************************************
  439. .*                       END OF DOCUMENT                             *
  440. .*********************************************************************
  441. .* Leave the following tag as is..  This MUST be the last tag of
  442. .* your document.
  443. :egdoc.
  444.