партнерский раздел
ФорумЭксплуатацияКак выключить/выгрузить/закрыть CSO из командной строки?

Эксплуатация » Как выключить/выгрузить/закрыть CSO из командной строки?

Решение найдено, оно в конце первого сообщения.
Чтобы уважаемые советчики не были связаны конкретным вопросом, опишу ситуацию в целом, возможно, правильный ответ будет совсем не на этот вопрос. 
Два С2000М связаны с сервером Орион Про через RS-232. На сервере операционная система Windows Server 2003 R2, сам сервер в удалённой серверной, доступ к нему только по локальной сети. Запуск CSO происходит автоматически при каждом включении сервера, руками трогать ничего не надо. Загрузка CSO происходит через "Назначенные задания" от имени пользователя Orion при каждом включении  компьютера (вход в учётную запись Windows для этого не требуется, хотя кто его знает, может быть Windows и делает какой-то служебный вход). 
У оператора компьютер с монитором Орион Про. После в
ключения сервера через пять минут Монитор вещает "Установлено соединение с сервером Орион". 

Всё хорошо, пока не возникнет необходимость включить PProg, для этого надо выключить CSO, а как это сделать? Точнее, как это сделать правильно? 
С любого компьютера заходим на удалённый рабочий стол сервера, пусть даже под тем же именем Orion, но это будет новая сессия. И в этой другой сесии будет другой рабочий стол, на этом рабочем столе не будет значка запущенного CSO, не на что нажимать, нечего закрывать. Можно вызвать Диспетчер задач и убить процесс CSO, цель будет достигнута, но правильно ли это? Не будет ли это медленным подтачиванием здоровья CSO, так что на сотый раз он сломается? Наверняка есть штатная команда на выключение для командной строки, только я её не нашёл. 

А может, правильным образ действий для этой ситуации вообще другой?

Тут ниже задали справедливый вопрос о конечной цели. Конечная цель  - подключиться программой PProg к С2000М, считать конфигурацию, загрузить конфигурацию. C2000M версии 2.07. Для этого, вроде бы, достаточно отключить ядро опроса, но с ядром опроса аналогичная проблема, как его выключить из командной строки. Я посчитал, что проще выключить весь CSO. Я неправ? Если проще выключить Ядро опроса, то подскажите, как при тех же условиях выключить ядро опроса, а потом включить его снова.
=============
Решение. 

  1. Отказаться от запуска программ с помощью "назначенных заданий"
  2. Сделать автологон в учётную запись (предусмотреть там для безопасности скринсейвер с паролем)
  3. В этой учётной записи поставить CSO в автозагрузку. Сейчас я тестировал без подключенных ПКУ, так что CoreOrion тоже ставил в автозагрузку, а то голый CSO его не запускал
  4. На удалённом компьютере запускать mstsс с ключом /admin. Ключ /console на современных ОС не работает, устарел. 
  5. В результате открывается именно та учётная запись, в которой запущен CSO и Coreorion, можно с ними работать. 
  6. В CoreOrion снимаем галочки с нужного COM порта, прекращаем опрашивать ПКУ, освобождаем порт для PProg. 

6 лет назад

avatar
А зачем вообще выключать CSO ?

Кечаев Алексей Борисович 6 лет назад

Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?)

4 ответа

Конфигурация пульта C2000М версий с 2.07 скачивается без отключения CSO как из АБД, так и из Pprog (перед этим нужно отключить в ядре опроса нужный COM порт путем снятия "галочки").

6 лет назад

avatar
Спасибо за ответ, вы очень помогли, всё стало предельно ясно. Кроме одного, как отключить в ядре опроса нужный COM порт из командной строки.

Сейчас поэкспериментирую и почитаю руководство, может быть всё просто, может быть я просто туплю.
...
Не могу экспериментировать, дистрибутивный prvd заменил боевым, а ключи остались в предыдущем сервере, сейчас не могу ничего запустить.

Иванов Андрей Львович 6 лет назад

Через командную строку не представляю, как сделать, я всегда через удаленный рабочий стол отключаю.

Кечаев Алексей Борисович 6 лет назад

Давайте начнём всё сначала. В какой программе вы отключаете опрос COM порта?

Иванов Андрей Львович 6 лет назад

СОМ-порт отключается в ядре опроса (там где список всех портов), там же он и включается (сначала галочка в списке, потом галочка на Порт активен).
вход в учётную запись Windows для этого не требуется, хотя кто его знает, может быть Windows и делает какой-то служебный вход

а может попробовать сделать автологин у служебного пользователя и блокировку после 5 минут простоя? вдруг тогда и удалённый вход будет в текущую сессию.

Волков Андрей 6 лет назад

Попробую.
Я не сделал так сразу, потому что это Сервер 2003, а у аналогичной ХР с автоматическим запуском проблемы, что-то там не успевает загрузиться, а задержку ХР ещё не умеет.
Проверю.

Иванов Андрей Львович 6 лет назад

Нет, конечная цель не достигается.
Производим автологин в учётку, в учётке ставим в автозагрузку CSO и опрос ядра. Всё автологинится и автозагружается.  
Но когда заходишь по РДП, всё равно открывается новая сессия, отличная от  живой. Опрос ядра запущен в живой, в РДПшной он второй раз не запускается.  
Я нашёл галочку "ограничивать пользователя одной сессией", но это касается только сеансов РДП. А соединить живой вход с РДПшным пока не получается.

Может, мы вообще копаем не под тем деревом? Завтра буду звонить в техподдержку.


 

Иванов Андрей Львович 6 лет назад

всё то в этих серверных виндах не как у людей)) или точнее у болида под сервера не очень)
а задержку ХР ещё не умеет

чего это сразу не умеет? батник в автозагрузку, в батник пинг 127.0.0.1 раз этак 10, после уже запуск цсо и шелла.

Волков Андрей 6 лет назад

Это человек умеет, а ХР нет. В последующих виндах в планировщике появилась опция отложить запуск на Н секунд.

Иванов Андрей Львович 6 лет назад

Решение. 
  1. Отказаться от запуска программ с помощью "назначенных заданий"
  2. Сделать автологон в учётную запись (предусмотреть там для безопасности скринсейвер с паролем)
  3. В этой учётной записи поставить CSO в автозагрузку. Сейчас я тестировал без подключенных ПКУ, так что CoreOrion тоже ставил в автозагрузку, а то голый CSO его не запускал
  4. На удалённом компьютере запускать mstsс с ключом /admin. Ключ /console на современных ОС не работает, устарел. 
  5. В результате открывается именно та учётная запись, в которой запущен CSO и Coreorion, можно с ними работать. 
  6. В CoreOrion снимаем галочки с нужного COM порта, прекращаем опрашивать ПКУ, освобождаем порт для PProg. 

Иванов Андрей Львович 6 лет назад

а зачем CoreOrion? shell же ядро запускает, заодно и ошибки показывает в своём логе, ядро именно эти ошибки не покажет.

Волков Андрей 6 лет назад

Исключительно в  целях тестирования при неподключенных кабелях.  .

Иванов Андрей Львович 6 лет назад

Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?)

Сопутствующий вопрос. 
Если нажать "Выход из системы" [Windows], то начинается выход, закрываются все программы, в том числе закрывается Ядро опроса, но CSO закрыться не может, он ждёт пароль на закрытие. Соответственно, выход не происходит. Получается, что пока человек не вмешается, Орион Про взаимодействовать с ПКУ не будет? Или CSO поскучает, да и запустит ядро опроса снова? 

6 лет назад

avatar
Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?)

Решение. 
  1. Отказаться от запуска программ с помощью "назначенных заданий"
  2. Сделать автологон в учётную запись (предусмотреть там для безопасности скринсейвер с паролем)
  3. В этой учётной записи поставить CSO в автозагрузку. Сейчас я тестировал без подключенных ПКУ, так что CoreOrion тоже ставил в автозагрузку, а то голый CSO его не запускал


Когда же они научат ЦСО работать в качестве службы, что бы не городить вот эти костыли в виде автологона в учетку на "сервере" и запуск софта через "автозагрузку"?

Крайне странно что "серверные" модули Орион Про до сих пор не умеет грамотно работать по этой части. Ведь выходит что нет никакой нормальной отказоустойчивости. Если один из модулей (ЦСО или Ядро) тупо вылетит с ошибкой - само оно уже не восстановится.

Да и в Менеджер ЦСО неплохо бы добавить функции удаленного запуска/перезапуска нужных модулей и освобождению портов Ядром.
Если нажать "Выход из системы" [Windows], то начинается выход, закрываются все программы, в том числе закрывается Ядро опроса, но CSO закрыться не может, он ждёт пароль на закрытие. Соответственно, выход не происходит.

Эту возможность (Выход из системы) можно а иногда и кране нужно отключать средствами ОС. Может ли "закрыться CSO" в конечном итоге решает не программа, а все же ОС. Зависит от настроек.

6 лет назад

avatar
Если один из модулей (ЦСО или Ядро) тупо вылетит с ошибкой - само оно уже не восстановится.

Мало того, у меня иногда оболочка самопроизвольно закрывается. Точнее скорее всего её вин10 почему то закрывает. И приходится ручками заходить на сервак и запускать.

Рыбкин Евгений Сергеевич 6 лет назад

Какую работу выполняет оболочка на сервере? Для чего она там нужна в запущенном состоянии?

Иванов Андрей Львович 6 лет назад

Оболочка является средством связи между другими модулями и РМ. Может не точно выразился, но это так. Помоему в РЭ на Орион всё написано.

Малозёмов Константин Вячеславович 6 лет назад

Отвечает за работу ядра опроса.
В документации сказано:
программные модули «Ядро опроса» и «Монитор системы» не работают напрямую с Центральным Сервером системы, а исключительно через Оболочку системы

Поэтому на сервере запускается оболочка, а уже она автоматически запускает ядро опроса.
 

Рыбкин Евгений Сергеевич 6 лет назад

Спасибо, Евгений Сергеевич) Мне лень читать было - только на работу пришёл))

Малозёмов Константин Вячеславович 6 лет назад

Спасибо за ответ. Я этого не знал, и думал, что в отсутствие человека (не нужен монитор и прочие человеческие радости) надо запускать не оболочку, а ядро опроса непосредственно. 

Иванов Андрей Львович 6 лет назад

Уточненние. 
Если на сервере запущен ТОЛЬКО модуль ЦСО, тогда на этом компьютере запуск Оболочки не требуется.
Мало того, в этом случае я бы рекомендовал её не запускать.
Падучесть shell.exe, к сожалению, "недовылечена".
В принципе, кроме ЦСО, в оболочке не нуждается ещё и модуль "Персональная карточка" (она сама создает прямое подключение к ЦСО и подписывается к получению событий от оболочек тех Оперативных задач/ядер опроса, к которым подключены наблюдаемые ею приборы).

Заварзин Сергей 6 лет назад

К СОМ портам сервера подключены ПКУ, то есть, нужны и сервер, и ядро опроса. Человек за сервером не сидит, то есть Монитор, АБД, Генератор отчётов не нужны. Чем запускать ядро опроса? До сегодняшнего дня я просто запускал файл coreorion.exe

Иванов Андрей Львович 6 лет назад

чем запускать ядро опроса?

программные модули «Ядро опроса» и «Монитор системы» не работают напрямую с Центральным Сервером системы, а исключительно через Оболочку системы

Поэтому на сервере запускается оболочка, а уже она автоматически запускает ядро опроса.

Зачем было спрашивать одно и тоже несколько раз?
К СОМ портам сервера подключены ПКУ, то есть, нужны и сервер, и ядро опроса.

"Сервер" (CSO.exe) и "Ядро" (CoreOrion.exe) могут быть и на разных "серверах". Там, куда подключены приборы нужен только модуль "Ядро", а дальше уже в зависимости от конкретной ситуации.
Я просто запускал файл coreorion.exe

И как "Ядро" устанавливало связь с "Сервером" тогда? Ведь
программные модули «Ядро опроса» и «Монитор системы» не работают напрямую с Центральным Сервером системы, а исключительно через Оболочку системы

Модуль "Оболочка системы" (shell.exe) устанавливает связь с "Сервером" и уже сам запускает "Ядро". п.6.2.1 РЭ.

Бушнов Олег Игоревич 6 лет назад

И как "Ядро" устанавливало связь с "Сервером" тогда?

Либо недокументированная возможность, либо я не заметил, как запустил Оболочку. В последнем я сомневаюсь, потому что у меня привычка сначала закрепить иконку в пуске, и только потом ей пользоваться. Иконку Оболочки я не закреплял. 
С этой минуты буду запускать как написано. 

Иванов Андрей Львович 6 лет назад

Правильно ли понял? К компу подключены ПКУ (соответственно нужно ядро опроса) и на нём же запускается ЦСО.
Тогда в АБД в свойствах этого рабочего места отключите разрешение на запуск монитора, но оставьте запуск ядра опроса.
В автозагрузку поставьте start.bat:
cso.exe
TIMEOUT /T 10 /NOBREAK
shell.exe
---
Запуск coreorion.exe в ручную (без оболочки) не корректен, хотя при этом обмен данными с ядром будет, но в базу данных на сервер эти данные не попадут, а останутся в локальном кэше

Заварзин Сергей 6 лет назад

Спасибо, так и буду делать. 
Тайм аут в сервер 2003 оказался не нужен, запускается и так. Но сегодня запускается, завтра перестанет, так что пусть будет и таймаут тоже. 

Иванов Андрей Львович 6 лет назад

В автозагрузку поставьте start.bat:
cso.exe

Тут еще хотелось бы дополнить что "Сервер" может вылететь если в момент его запуска не стартанула служба SQL-сервера к которому этот наш cso.exe цепляется в момент запуска...

Бушнов Олег Игоревич 6 лет назад

в windows 10
вариант с start.bat:
cso.exe
TIMEOUT /T 10 /NOBREAK
shell.exe

не  работает.
после выполнения первого условия программа ждет ручного, принудительного закрытия cso.exe,
ля перехода к следующей строке.....

Днепровский Александр Владимирович 6 лет назад

для win10 попробуйте:

start cso.exe
TIMEOUT /T 10 /NOBREAK
start shell.exe

а вообще странно, неужели получается такая конструкция:
cso.exe&&TIMEOUT /T 10 /NOBREAK&&shell.exe
когда следующая команда выполняется  только после удачного завершения предыдущей?!
не сталкивался.

Заварзин Сергей 6 лет назад

Только после закрытия руками cso.exe переходит к счетчику

новую строку попробую позже

Днепровский Александр Владимирович 6 лет назад

Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?)

Кто-нибудь пробовал CSO.exe обработать через какую-нибудь софтину типа "Exe To Service" и сделать таки это приложение почти полноценной службой? Собственно в этом случае запуском/перезапуском/остановом "Сервера" можно юудет рулить удаленно стандартными средствами администрирования Win.

6 лет назад

avatar
Нашел ответ на этот вопрос:
https://partners.bolid.ru/forum/forum_4572.html#answer4662

Бушнов Олег Игоревич 6 лет назад

Еще вспомнил (при помощи гугла) что для "создания" служб дополнительные софтины не очень то и требуются, в Win есть инструмент для этого:

cmd > sc create

Только следует не забыть что для cso.exe требуется взаимодействие с GUI пользователя (type= interact) и запускать его в качестве службы нужно из под соответствующей учетной записи (obj= /пользователь/ password=/пароль/ ). Ну и службу SQL-сервиса неплохо бы сразу добавить в зависимости (depend= /служба SQL-сервера/).

p.s. 21 век на дворе а разработчики этого форума все не в состоянии сделать корректную обработку "треугольных скобок" в сообщениях...

 

Бушнов Олег Игоревич 6 лет назад

Да просто взяли готовый движок. А могли и  такого не сделать, давайте ценить. 

Иванов Андрей Львович 6 лет назад

Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?)

Добавить ответ

Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?)

ПОКАЗАН

5214 раза

ЗАДАН

6 лет назад

ПРОДУКТЫ

Орион Про

По каждому вопросу/ответу можно добавлять комментарии. Комментарии предназначены для уточнения вопроса/ответа.