|
Как в Linux в коде 1С получить командную строку с которой запущен текущий процесс? | ☑ | ||
---|---|---|---|---|
0
TormozIT
гуру
25.04.21
✎
08:33
|
У меня линукса нет. Но хочу добавить его поддержку программе на 1С.
Как в Linux в коде 1С получить командную строку с которой запущен текущий процесс? |
|||
1
Кирпич
25.04.21
✎
08:55
|
А в windows как?
|
|||
2
Biker
25.04.21
✎
08:56
|
(0) скрипт надо, найти id процесса и по нему вынуть
cat /proc/<pid>/cmdline |
|||
3
TormozIT
гуру
25.04.21
✎
09:01
|
(2) Пример результата этой команды есть?
Как pid определить? |
|||
4
Biker
25.04.21
✎
09:05
|
(3) вот так должно получится cat /proc/$PPID/cmdline
вывод /opt/1cv8/x86_64/8.3.18.1363/rphost-range1560:1591-reghostИмяХоста-regport1541-pid436a356c-54bd-4d6c-9198-ea9f92a74fa2-debug-tcp |
|||
5
TormozIT
гуру
25.04.21
✎
09:07
|
(4) Че т не понял. Символ "-" в линуксе не может быть частью имени файла или кто то удалил пробелы?
|
|||
6
Biker
25.04.21
✎
09:09
|
(5) кто-то удалил, перед -, пробелы
|
|||
7
TormozIT
гуру
25.04.21
✎
09:13
|
(6) Можешь у того, кто удалил, попросить оригинальный результат команды?
|
|||
8
TormozIT
гуру
25.04.21
✎
09:15
|
Следующий шаг - получить в коде 1С в linux результат консольной команды. Есть пример или готовый универсальный код?
|
|||
9
GANR
25.04.21
✎
09:22
|
(3) ps -e | grep -i 1c что получится?
|
|||
10
TormozIT
гуру
25.04.21
✎
09:24
|
(9) Если ты меня спрашиваешь, то что из слов "У меня линукса нет" (0) тебе не понятно?
|
|||
11
acht
25.04.21
✎
09:29
|
(8) Через перенаправление вывода в файл и чтение его из 1С. Готовый универсальный код.
|
|||
12
acht
25.04.21
✎
09:30
|
(0) > У меня линукса нет. Но хочу добавить его поддержку
Оно так не работает, к сожалению. Надо поставить, чтобы хотя бы проверить свои труды. |
|||
13
TormozIT
гуру
25.04.21
✎
09:48
|
(12) К счастью, работает, когда есть заинтересованные пользователи.
|
|||
14
Biker
25.04.21
✎
09:50
|
(7) Посмотрел, там вместо пробела (hex 20) нуль (hex 00) выводит
накидал код, работает, но вывод надо разбирать, ругается на 00 , функции из БСП ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы(); ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина; ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина; КомандаЗапуска = Новый Массив; КомандаЗапуска.Добавить("cat"); КомандаЗапуска.Добавить("/proc/$PPID/cmdline"); Результат = ФайловаяСистема.ЗапуститьПрограмму(КомандаЗапуска, ПараметрыЗапускаПрограммы); ОбщегоНазначения.СообщитьПользователю(Результат.ПотокВывода); |
|||
15
Biker
25.04.21
✎
09:52
|
ПотокВывода=/opt/1cv8/x86_64/8.3.18.1363/rphost -range 1560:1591 -reghost ИмяХоста -regport 1541 -pid 436a356c-54bd-4d6c-9198-ea9f92a74fa2 -debug -tcp
|
|||
16
TormozIT
гуру
25.04.21
✎
09:56
|
(14) Спасибо. Уже большая часть задачи решена.
Остается понять как PID определить и желательно наджено. Поиск в списке процессов по имени файла - не очень надежным кажется. |
|||
17
acht
25.04.21
✎
09:58
|
(13) Отладка на пользователях продуктива, как это по 1Сному.
|
|||
18
Biker
25.04.21
✎
09:58
|
(16) дак яж тебе дал уже рабочий код, ничего больше не надо определять.
$PPID - это как раз переменная окружения текущего процесса. |
|||
19
TormozIT
гуру
25.04.21
✎
09:59
|
(18) Теперь понял.
|
|||
20
GANR
25.04.21
✎
11:44
|
(10) Не понятно в чем проблема поставить - выкачать ISO-образ системы и в VirtualBox установить. Ubuntu, к примеру, реально проще чем Windows ставить, можно и CentOS.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |