PROC-EXIST не находит некоторые процессы

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

PROC-EXIST не находит некоторые процессы

Postby MuR » Wed, 03 Aug 2011, 10:55

Есть ли причина, по которой слово PROC-EXIST может не находить конкретный процесс?

Использовал так:

Code: Select all
PROC-EXIST: "VBoxHeadless.exe" IF
    MSG: "Exist"
ELSE
    MSG: "NO"
THEN

и так:

Code: Select all
S" d:\VirtualBox\VBoxHeadless.exe" PROC-EXIST? IF
   MSG: "Exist"
ELSE
  MSG: "NO"
THEN


Нашёл решение как это делать через bat-файл, но хочется понять, почему не работает.
Code: Select all
@echo off
tasklist /FI "IMAGENAME eq VBoxHeadless.exe" 2>NUL | find /I /N "VBoxHeadless.exe">NUL
if "%ERRORLEVEL%"=="0" (echo Exist) else (echo No)
Windows 7 Home Premium 64-bit, nnCron 1.93.1141 Beta 10
MuR
 
Posts: 27
Joined: Thu, 10 Nov 2005, 08:58

Re: PROC-EXIST не находит некоторые процессы

Postby VoidVolker » Wed, 03 Aug 2011, 14:54

Возможно крону прав не хватает. А может там семерка еще чего удумала. Крон запущен сервисом или приложением? В режиме приложения эффект тот-же?
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: PROC-EXIST не находит некоторые процессы

Postby MuR » Wed, 03 Aug 2011, 20:36

VoidVolker wrote:Возможно крону прав не хватает. А может там семерка еще чего удумала. Крон запущен сервисом или приложением? В режиме приложения эффект тот-же?

Наверное семёрка удумала :). Крон запущен приложением, процесс и крон работают от имени одного пользователя. На XP этот же процесс ловится без проблем, правда там крон запущен сервисом. Удивительная семёрка, что и говорить...
MuR
 
Posts: 27
Joined: Thu, 10 Nov 2005, 08:58

Re: PROC-EXIST не находит некоторые процессы

Postby VoidVolker » Wed, 03 Aug 2011, 22:33

А другие процессы находит? Права на доступ к файлу во время работы есть? А то встречался с таким - прога блокирует права на файл при запуске.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: PROC-EXIST не находит некоторые процессы

Postby MuR » Thu, 04 Aug 2011, 17:09

VoidVolker wrote:А другие процессы находит? Права на доступ к файлу во время работы есть? А то встречался с таким - прога блокирует права на файл при запуске.

Другие процессы находит, а этот - нет.
Следующая конструкция — работает:
Code: Select all
S" d:\VirtualBox\VBoxHeadless.exe" EXIST?
Значит можно сделать вывод, что права на доступ к файлу во время работы есть.
В общем, в непонятках я...
MuR
 
Posts: 27
Joined: Thu, 10 Nov 2005, 08:58

Re: PROC-EXIST не находит некоторые процессы

Postby elos » Thu, 04 Aug 2011, 18:59

Code: Select all
: FILE-EXIST { a u \ sp res -- ? ior }
    a u S" *" SEARCH NIP NIP 0= a u S" ?" SEARCH NIP NIP 0= AND
    IF a GetFileAttributesA -1 <> DUP ERR  EXIT THEN
    SP@ TO sp
    SP@ /WIN32_FIND_DATA - SP!
    SP@ a u FILE-ATTRIBUTES TO res
    sp SP! res DUP ERR
;

: EXIST? FILE-EXIST DROP ;
Делай выводы... Тебе же процесс нужен, а не файл (особенно с абсолютным путём).

Ненахождение не может быть связано с "консольностью" программы подобно WatchWin*: ? Сам VirtualBox не имею, потому и спрашиваю - это не консольное окошко случаем?
Last edited by elos on Thu, 04 Aug 2011, 19:09, edited 1 time in total.
elos
 
Posts: 664
Joined: Tue, 25 Apr 2006, 11:15

Re: PROC-EXIST не находит некоторые процессы

Postby VoidVolker » Thu, 04 Aug 2011, 19:05

Права в свойствах файла смотрятся, а не проверкой на существование файла.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: PROC-EXIST не находит некоторые процессы

Postby MuR » Thu, 04 Aug 2011, 22:04

Процесс VBoxHeadless.exe создаётся из крона, он запускается через START-APP.
Может крон не видит процессы, родителем которых он является?
Ну, это уже пошли самые безумные идеи :)
MuR
 
Posts: 27
Joined: Thu, 10 Nov 2005, 08:58

Re: PROC-EXIST не находит некоторые процессы

Postby VoidVolker » Thu, 04 Aug 2011, 22:38

А в задаче есть авторизация? Видит ли крон процесс, запущенный пользователем?
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: PROC-EXIST не находит некоторые процессы

Postby Gh0 » Wed, 09 Nov 2011, 21:50

У меня аналогичная проблема, причем ОС тоже Windows 7 64-bit.
Экспериментально удалось установить, что PROC-EXIST не видит 64-битные процессы, хотя 32-битные видит исправно...
есть ли возможность это исправить?
Gh0
 
Posts: 3
Joined: Wed, 09 Nov 2011, 21:40

Re: PROC-EXIST не находит некоторые процессы

Postby AlikasS » Thu, 10 Nov 2011, 11:21

Gh0 wrote:У меня аналогичная проблема, причем ОС тоже Windows 7 64-bit.
Экспериментально удалось установить, что PROC-EXIST не видит 64-битные процессы, хотя 32-битные видит исправно...
есть ли возможность это исправить?

если как то через батник
поиск 64 битным cmd (если 32 битный не найдет) определенного процесса и выброс какого-нибудь флага.
надо пробовать...
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: PROC-EXIST не находит некоторые процессы

Postby Morituruz » Thu, 10 Nov 2011, 14:43

а насколько реально сделать 64 битный nncron?
User avatar
Morituruz
 
Posts: 725
Joined: Sun, 14 Oct 2007, 01:51

Re: PROC-EXIST не находит некоторые процессы

Postby Gh0 » Thu, 10 Nov 2011, 21:46

AlikasS wrote:если как то через батник
поиск 64 битным cmd (если 32 битный не найдет) определенного процесса и выброс какого-нибудь флага.
надо пробовать...

сделал постфиксный вариант (вроде работает, но нужно будет доработать):
Code: Select all
: PROC-EXIST64? { a u -- ? }
SWHide
S" %COMSPEC% /c tasklist /FI %QUOTE%IMAGENAME eq " EVAL-SUBST a u S+ S" %QUOTE% | find /I /N %QUOTE%" EVAL-SUBST S+ a u S+ S" %QUOTE%" EVAL-SUBST S+ START-APPW
ExitCodeProc 0=
IF TRUE
ELSE FALSE
THEN
;

можно использовать например так:
Code: Select all
S" hh.exe" PROC-EXIST64?
IF TMSG: "Exist" 1
ELSE TMSG: "Not Exist" 1
THEN
Gh0
 
Posts: 3
Joined: Wed, 09 Nov 2011, 21:40

Re: PROC-EXIST не находит некоторые процессы

Postby AlikasS » Thu, 17 Nov 2011, 13:10

Gh0 wrote:
AlikasS wrote:если как то через батник
поиск 64 битным cmd (если 32 битный не найдет) определенного процесса и выброс какого-нибудь флага.
надо пробовать...

сделал постфиксный вариант (вроде работает, но нужно будет доработать):
Code: Select all
: PROC-EXIST64? { a u -- ? }
SWHide
S" %COMSPEC% /c tasklist /FI %QUOTE%IMAGENAME eq " EVAL-SUBST a u S+ S" %QUOTE% | find /I /N %QUOTE%" EVAL-SUBST S+ a u S+ S" %QUOTE%" EVAL-SUBST S+ START-APPW
ExitCodeProc 0=
IF TRUE
ELSE FALSE
THEN
;

можно использовать например так:
Code: Select all
S" hh.exe" PROC-EXIST64?
IF TMSG: "Exist" 1
ELSE TMSG: "Not Exist" 1
THEN

кто б потестил на 64 битах?
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: PROC-EXIST не находит некоторые процессы

Postby Morituruz » Thu, 17 Nov 2011, 13:56

AlikasS wrote:кто б потестил на 64 битах?

Работает! Но мокрософт свинью подложил:
http://social.technet.microsoft.com/For ... fa351d6e1/
В моём случае оказалось надо так :mrgreen:
Code: Select all
: PROC-EXIST64? { a u -- ? }
SWHide
S" %COMSPEC% /c tasklist /FI %QUOTE%Имя образа eq " EVAL-SUBST a u S+ S" %QUOTE% | find /I /N %QUOTE%" EVAL-SUBST S+ a u S+ S" %QUOTE%" EVAL-SUBST S+ START-APPW
ExitCodeProc 0=
IF TRUE
ELSE FALSE
THEN
;
User avatar
Morituruz
 
Posts: 725
Joined: Sun, 14 Oct 2007, 01:51

Next

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 3 guests

cron