Sendmail, Group Purges, and ACD Removal
April 27, 2015
Is there a proper or "right" way to shut down sendmail?
Donna Hofmeister replies
• Use the Posix kill signal from SERVER.SENDMAIL or any user with SM capability. (The following can be easily turned into a job!)
kill $(head -n 1 /etc/mail/sendmail.pid)
• Only use :ABORTJOB as a last resort! (This is true for all of the Posix things that got ported to MPE)
If you don't need to run a mail server (e.g. sendmail) on your 3000, you shouldn't. In most cases, using a mail client will be "just the ticket." Point the client at your in-house (SMTP) mail server and enjoy.
How can I easily purge all the files in a group without destroying the group structure?
If GRPNAME is the name of the group then either:
1. chgroup GRPNAME and
purgegroup GRPNAME
Or, purge @.GRPNAME
[Ed. note: Vladimir Volokh notes this last command does not purge databases from a group, although it purges everything else. You must be an SM user to purge everything in one account from another account. Of course, MPEX's %purge will purge everything, and will report the list of what is to be purged. %purge(ISPRIV) for a selection of databases only, for example.]
How can I convert an SL to an XL?
Jeff Kell and Gavin Scott reply:
You can OCTCOMP an SL, which will make the code in it run in mostly-Native Mode (though using several times the memory) and with exactly the same limitations as the original CM code. OCTCOMP just adds a pre-translated version of the CM code to the end of the file that will be invoked when you run the program or SL on an MPE/iX system.
We have problems accessing the files of one group because someone has added ACD's on all the files within that group. Is there a way to remove them all easily?
Mark Ranft replies
Using MPEX, you can issue the command
ALTFILE @.GROUP.ACCOUNT;DELACD
Keven Miller adds
And if you don't have MPEX, you can use a command file like the one below.
PARM [email protected], PCMD="ECHO File !" SETVAR XSI_CMD "!PCMD" IF FINFO ( "CMDFLST,TEMP", "EXISTS" ) THEN PURGE CMDFLST,TEMP ENDIF FILE CMDFLST;MSG;TEMP;NOCCTL;REC=-40,,F,ASCII;DISC=100000 LISTF !FILES,6;*CMDFLST FILE CMDFLST,OLDTEMP SETVAR XSI_CNT FINFO ( "CMDFLST,TEMP", "EOF" ) SETVAR XSI_R 0 WHILE !XSI_R < !XSI_CNT DO INPUT XSI_FILE < CMDFLST SETVAR XSI_R XSI_R + 1 SETVAR XSI_FILE RTRIM ( XSI_FILE ) SETVAR XSI_DO REPL (XSI_CMD, "!", XSI_FILE) SETJCW CIERROR=0 CONTINUE !XSI_DO IF CIERROR = 0 THEN ECHO !XSI_DO ENDIF ENDWHILE ECHO !XSI_CNT FILES DELETEVAR [email protected] PURGE CMDFLST,TEMP
This command file takes 2 parameters. 1. a fileset (wildcards allowed) 2. an MPE command with a ! exclamation as place holder for the filename It does a LISTF ,6 of your fileset into a MSG file. Then it reads through the MSG file and processes each file with your command.