[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference bulova::decw_jan-89_to_nov-90

Title:DECWINDOWS 26-JAN-89 to 29-NOV-90
Notice:See 1639.0 for VMS V5.3 kit; 2043.0 for 5.4 IFT kit
Moderator:STAR::VATNE
Created:Mon Oct 30 1989
Last Modified:Mon Dec 31 1990
Last Successful Update:Fri Jun 06 1997
Number of topics:3726
Total number of notes:19516

321.0. "RUN/DETACHED???" by LARVAE::MCCAUSLAND () Tue Feb 28 1989 16:43

    What is the correct way to RUN/DETACHED graphics applications under
    VMS DECwindows?
                                                                   
    It seems that from VMS FT2.1 the SET DISPLAY arrangements stop
    RUN/DET though say RUN/DET/OUT=WSA1: works.
                                               
    Is this correct (and/or documented) and can the screen be more elegantly
    identified? We have a customer whose application is being adversely
    affected by this.                                              
                                                                   
    Many thanks                                                    
    
    Andrew

T.RTitleUserPersonal
Name
DateLines
321.1My DECW$DETACH.COM fileATSE::DAVIDSONTue Feb 28 1989 18:2063
re: .0

	I haven't heard of anyone doing anything like that RUN/DET/OUT=WSxn:
	type command.  Here is the command file I use and I run EVERYTHING
	detached.  So with this command file I just set up a symbol like

		$ DET*ACH = "@DECW$DETACH.COM"

	and then to run something like bookreader I do a

		$ DET "Bookreader" "run sys$system:decw$bookreader"

	This is how I start all my decwindows process from my DECW$LOGIN.COM
	file so I don't have to slow down or use up CPU time for the session
	manager.  I like each entity to get its own time slice instead of being
	in a subprocess.

Sean

$!
$!	Start a detached process
$!
$!	p1	= process name
$!	p2 - p8	= dcl command
$!
$ u = f$cvtime()
$ y = f$extract(0,10,u)
$ t = f$extract(11,2,u)+f$extract(14,2,u)+f$extract(17,2,u)+f$extract(20,2,u)
$ cr[0,8] = 13
$ lf[0,8] = 10
$ crlf = cr+lf
$ node = f$trnlnm("sys$rem_node")-"::"
$ comfil = y+"-"+t+".tmp;1"
$ open/write q 'comfil'
$ write q "$ delete ''comfil'"
$ if node .nes. ""
$ then
$	write q "$ set display/create/node=''node'"
$ else
$	write q "$ set display/create/transport=local"
$ endif
$ write q "$ ''p2'"
$ if p3 .nes. "" then write q "$ ''p3'"
$ if p4 .nes. "" then write q "$ ''p4'"
$ if p5 .nes. "" then write q "$ ''p5'"
$ if p6 .nes. "" then write q "$ ''p6'"
$ if p7 .nes. "" then write q "$ ''p7'"
$ if p8 .nes. "" then write q "$ ''p8'"
$ write q "$ exit"
$ close q
$ delay = (f$extract(0,1,p1) .eqs. "*")
$ prcnam = f$extract(0,16,"''p1'")
$ if delay then prcnam = f$extract(1,15,prcnam)
$ define/user sys$output nl:
$ define/user sys$error nl:
$ run sys$system:loginout/detach/authorize/output=nl:/error=nl: -
	/proc="''prcnam'"/input='f$search(comfil)'
$ if $severity .ne. 1 then -
	write sys$output "%RUN-F-PROCNOGO, Process ''prcnam' not started", -
	crlf,f$messa($status)
$ if delay then @vue$library:decw$idle "''prcnam'"
$ exit

321.2decw$idle?PEAKS::WESTBROOKEric E. WestbrookMon Jun 26 1989 19:098
I notice that if you specify an asterisk (*) as the first character of your 
process name, VUE$LIBRARY:DECW$IDLE.COM gets run on your new process.  

However, DECW$IDLE.COM doesn't exist in my VUE$LIBRARY:.  Where is this file 
from and what does it do?

Eric

321.3Here is DECW$IDLE.COMRTL::DAVIDSONTue Jun 27 1989 17:4137
    re: .-1
    
    Here is DECW$IDLE.COM.  The * as the first character of the process
    name tells the DECW$ILDE.COM to watch for that process to stop page
    faulting and using CPU time.
    
    Sean
    
    
$!
$!	Wait for process to become idle
$!
$!	p1	= process name
$!
$ set noon
$ on control_y then goto exit
$ prcnam = "''p1'"
$ set message/nofacility/noidentification/noseverity/notext
$find:
$ p = f$pid(i)
$ if p .eqs. "" then goto exit
$ if f$getjpi(p,"prcnam") .nes. prcnam then goto find
$idle:
$ j1 = f$getjpi(p,"cputim")
$ if $severity .ne. 1 then goto exit
$ j2 = f$getjpi(p,"pageflts")
$ j3 = f$getjpi(p,"dirio")+f$getjpi(p,"bufio")
$ wait 00:00:03
$ if f$getjpi(p,"state") .eqs. "COM" then goto idle
$ k1 = f$getjpi(p,"cputim")
$ k2 = f$getjpi(p,"pageflts")
$ K3 = f$getjpi(p,"dirio")+f$getjpi(p,"bufio")
$ if j1 .ne. k1 .or. j2 .ne. k2 .or. j3 .ne. k3 then goto idle
$exit:
$ set message/facility/identification/severity/text
$ exit