убить дупликаты запущенной программы

Обсуждение программ nnCron и nnCron LITE

убить дупликаты запущенной программы

Postby shmv » Sun, 09 Sep 2012, 08:37

здраствуйте. помогите со скриптами. что я делаю не так?
Code: Select all
#( sfw
/ ид ворда
VARIABLE A
/ флаг
VARIABLE b
WatchProc: "calc.exe"
Rule: PROC-EXIST: "calc.exe" NOT
Action:
FOR-PROCS: "calc.exe"
MSG: "запущен первым %FOUND-PROC% c пидом %FOUND-PID%"
/ %FOUND-PROC% a !
;FOR-PROCS
)#

#( sw
WatchProc: "calc"
Rule: PROC-EXIST: "calc.exe"
Action:
FOR-PROCS: "calc.exe"
MSG: "запущены копии %FOUND-PROC% c пидом %FOUND-PID%"
/ %FOUND-PID% A @ = NOT
IF
/ KILL %FOUND-PID%
THEN
;FOR-PROCS
)#

#( cfw
VARIABLE A
WatchProcStop: "calc.exe"
Rule: PROC-EXIST: "calc.exe" NOT
Action:
MSG: "закрылся %A%"
0000 A  !
MSG: "обнулился %A%"
)#

shmv
 
Posts: 4
Joined: Sun, 09 Sep 2012, 08:31

Re: убить дупликаты запущенной программы

Postby VoidVolker » Sun, 09 Sep 2012, 13:07

Не следует давать переменным, задачам и другим новым словам имена из одной или двух букв, особенно из A, B, C, D, E, F — т.к. в шестнадцатеричной системе счисления это числа и могу возникнуть непредсказуемые конфликты, а за ними и глюки.
Code: Select all
#( Задача_140509092012_start
VARIABLE my-program-pid
WatchProc: "calc.exe"
Rule: PROC-EXIST: "calc.exe" NOT
Action:
FOR-PROCS: "calc.exe"
MSG: "запущен первым %FOUND-PROC% c пидом %FOUND-PID%"
FOUND-PROC my-program-pid !
;FOR-PROCS
)#

#( Задача_140509092012_dkill
WatchProc: "calc"
Rule: PROC-EXIST: "calc.exe"
Action:
FOR-PROCS: "calc.exe"
MSG: "запущены копии %FOUND-PROC% c пидом %FOUND-PID%"
FOUND-PID my-program-pid @ <>
IF
  FOUND-PID  kill
THEN
;FOR-PROCS
)#

#( Задача_140509092012_stop
WatchProcStop: "calc.exe"
Rule: PROC-EXIST: "calc.exe" NOT
Action:
MSG: "закрылся %my-program-pid @%"
my-program-pid OFF
MSG: "обнулился %my-program-pid @%"
)#
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: убить дупликаты запущенной программы

Postby shmv » Sun, 09 Sep 2012, 16:05

спасибо, что подсказали по переменным. посмотрите пожалуста код. первая задача не срабатывает
shmv
 
Posts: 4
Joined: Sun, 09 Sep 2012, 08:31

Re: убить дупликаты запущенной программы

Postby shmv » Sun, 09 Sep 2012, 16:12

фактически сейчас срабатывает только последняя задача реагирующая на закрытие единственного процесса
shmv
 
Posts: 4
Joined: Sun, 09 Sep 2012, 08:31

Re: убить дупликаты запущенной программы

Postby shmv » Sun, 23 Sep 2012, 13:43

осилил. работает :rock:
Code: Select all
#( Задача_140509092012_start
VARIABLE my-program-pid
WatchProc: "calc.exe"
Action:
FOR-PROCS: "calc.exe"
 my-program-pid @ 0 =
 IF
 FOUND-PID my-program-pid !
 THEN
my-program-pid @ FOUND-PID <>
IF
FOUND-PID  kill
THEN
;FOR-PROCS
)#


#( Задача_140509092012_stop
WatchProcStop: "calc.exe"
Rule: PROC-EXIST: "calc.exe" NOT
Action:
my-program-pid OFF
)#

вместо калка соответствующий процесс
shmv
 
Posts: 4
Joined: Sun, 09 Sep 2012, 08:31


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 1 guest