home *** CD-ROM | disk | FTP | other *** search
- Rem ****************************************
- Rem * Shell3a external command - kill.opl
- Rem * ╕ Nick Murray February 1996
- Rem *
- Rem * kill - Terminate a specified process
- Rem * (can't be used on system processes)
- Rem ****************************************
- PROC kill%:(n%)
- LOCAL ret%,buf$(15),str%,addr%,pattern$(2),pid%
- ONERR ErrTrap::
- If n%<>2
- PRINT "Usage: kill <process id>"
- ELSE
- Rem get the name of the process to kill
- pid%=EVAL(PEEK$(argv%(2)))
- addr%=ADDR(buf$)
- pattern$="*"+CHR$(0)
- DO
- str%=ret%
- ret%=CALL($0B88,ret%,0,0,UADD(addr%,1),UADD(ADDR(pattern$),1))
- IF ret%=pid%
- POKEB addr%,CALL($B9,0,0,0,0,UADD(addr%,1))
- ret%=EVAL(RIGHT$(buf$,2))
- IF ret%<7
- PRINT "System process:",buf$
- ELSE
- CALL($0D88,pid%)
- PRINT buf$,"killed"
- ENDIF
- RETURN
- ENDIF
- UNTIL ret%=str%
- PRINT "Process not found"
- ENDIF
- RETURN
- ErrTrap::
- ONERR off
- PRINT err$:(ERR)
- ENDP
-