LINUX.ORG.RU

История изменений

Исправление kostik87, (текущая версия) :

Понимаете, способ точно есть. Вы вот это прочитали?

Плюс, возможно, в переменных окружения SHELL, например в PATH или LD_PRELOAD / LIBRARY_PATH у тебя указано подгружать библиотеки по некоторому пути.

tmux, sctreen, supervisord, immortal и кучи других тулзеней

@iron написал вот это и вы про и говорите..

Смысл в том, что при таком запуске у вас подтягиваются те же переменные окружения и прочие настройки SHELL, в которых вы сейчас запускаете.

А при запуске через systemd unit даже переменная PATH будет другая, то, что прописано в ~/.bashrc и прочих конфигах так же не подтянется, поэтому у вас и не работает.

Вы как-то частично слушаете рекомендации и частично их выполняете.

Понимаю, что вам хватает опыта и знаний.

Вы можете, например, написать простой bash скрипт и в нём сделать вывод в файл переменных окружения и настроек и запустить его в systemd, увидите с каким окружением запускается там и с каким запускаете вы в SHELL вручную и просто сравните.

Создаёте директорию /tmp/systemd и /tmp/shell

Скрипт прост:

#!/bin/bash
set > /tmp/systemd/set.out
export > /tmp/systemd/export.out

Можно ещё добавить вот это

ldd /путь/до/вашей/программы/program > /tmp/systemd/ldd.out

Вместо bash можете указать ваш SHELL - это может быть важно.

Всё, выполняете эти же команды, только с выводом в другие файлы.

В вашем SHELL:

set > /tmp/shell/set.out
export > /tmp/shell/export.out
ldd /путь/до/вашей/программы/program > /tmp/shell/ldd.out

Сравниваете, можно через diff.

diff -ur /tmp/shell /tmp/systemd

Всё, находите разницу в настройке окружения - выставляете так же в systemd unit файле, запускаете, радуетесь.

Можете написать скрипт запуска программы и запускать его, но настройки окружения лучше проверить.

Я просто поражаюсь, когда кому-то пишешь как проверить, но он просто не понимает написанного, то он ничего не спрашивает и не делает, а просто пишет - ничего не получилось, значит не возможно - такой его вывод.

Вот у вас так же.

В начале - как запустить как демон.

Вам написал как и что нужно проверить, но вам сложно и вы уже вроде как готовы сделать не так, как хотели изначально.

Мне всё равно, просто интересно это наблюдать.

Как только человек понимает, что он не понимает. Он считает, не что он не прав и невозможно, собственно из-за него (человека), потому, что ему не хватает знаний, а говорит, что невозможно в принципе и будут делать хоть как-то.

Честно, вот просто весело )))

Для systemd точно должны быть какие-то анализаторы запуска, но так, как я привёл 100% будет достаточно для анализа.

Удачи, запускайте так, как вам удобнее.

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

Вы же пришли, видимо, сразу за готовым ответом, даже хотя бы не предоставив само программное обеспечение, хотя бы название или пример запуска.

Исправление kostik87, :

Понимаете, способ точно есть. Вы вот это прочитали?

Плюс, возможно, в переменных окружения SHELL, например в PATH или LD_PRELOAD / LIBRARY_PATH у тебя указано подгружать библиотеки по некоторому пути.

tmux, sctreen, supervisord, immortal и кучи других тулзеней

@iron написал вот это и вы про и говорите..

Смысл в том, что при таком запуске у вас подтягиваются те же переменные окружения и прочие настройки SHELL, в которых вы сейчас запускаете.

А при запуске через systemd unit даже переменная PATH будет другая, то, что прописано в ~/.bashrc и прочих конфигах так же не подтянется, поэтому у вас и не работает.

Вы как-то частично слушаете рекомендации и частично их выполняете.

Понимаю, что вам хватает опыта и знаний.

Вы можете, например, написать простой bash скрипт и в нём сделать вывод в файл переменных окружения и настроек и запустить его в systemd, увидите с каким окружением запускается там и с каким запускаете вы в SHELL вручную и просто сравните.

Создаёте директорию /tmp/systemd и /tmp/shell

Скрипт прост:

#!/bin/bash
set > /tmp/systemd/set.out
export > /tmp/systemd/export.out

Можно ещё добавить вот это

ldd /путь/до/вашей/программы/program > /tmp/systemd/ldd.out

Вместо bash можете указать ваш SHELL - это может быть важно.

Всё, выполняете эти же команды, только с выводом в другие файлы.

В вашем SHELL:

set > /tmp/shell/set.out
export > /tmp/shell/export.out
ldd /путь/до/вашей/программы/program > /tmp/shell/ldd.out

Сравниваете, можно через diff.

diff -ur /tmp/shell /tmp/systemd

Всё, находите разницу в настройке окружения - выставляете так же в systemd unit файле, запускаете, радуетесь.

Можете написать скрипт запуска программы и запускать его, но настройки окружения лучше проверить.

Я просто поражаюсь, когда кому-то пишешь как проверить, но он просто не понимает написанного, то он ничего не спрашивает и не делает, а просто пишет - ничего не получилось, значит не возможно - такой его вывод.

Вот у вас так же.

В начале - как запустить как демон.

Вам написал как и что нужно проверить, но вам сложно и вы уже вроде как готовы сделать не так, как хотели изначально.

Мне всё равно, просто интересно это наблюдать.

Как только человек понимает, что он не понимает. Он считает, не что он не прав и невозможно, собственно из-за него (человека), потому, что он ему не хватает знаний, а говорит, что невозможно в принципе и будут делать хоть как-то.

Честно, вот просто весело )))

Для systemd точно должны быть какие-то анализаторы запуска, но так, как я привёл 100% будет достаточно для анализа.

Удачи, запускайте так, как вам удобнее.

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

Вы же пришли, видимо, сразу за готовым ответом, даже хотя бы не предоставив само программное обеспечение, хотя бы название.

Исходная версия kostik87, :

Понимаете, способ точно есть. Вы вот это прочитали?

Плюс, возможно, в переменных окружения SHELL, например в PATH или LD_PRELOAD / LIBRARY_PATH у тебя указано подгружать библиотеки по некоторому пути.

tmux, sctreen, supervisord, immortal и кучи других тулзеней

@iron написал вот это и вы про и говорите..

Смысл в том, что при таком запуске у вас подтягиваются те же переменные окружения и прочие настройки SHELL, в которых вы сейчас запускаете.

А при запуске через systemd unit даже переменная PATH будет другая, то, что прописано в ~/.bashrc и прочих конфигах так же не подтянется, поэтому у вас и не работает.

Вы как-то частично слушаете рекомендации и частично их выполняете.

Понимаю, что вам хватает опыта и знаний.

Вы можете, например, написать простой bash скрипт и в нём сделать вывод в файл переменных окружения и настроек и запустить его в systemd, увидите с каким окружением запускается там и с каким запускаете вы в SHELL в ручную и просто сравните.

Создаёте директорию /tmp/systemd и /tmp/shell

Скрипт прост:

#!/bin/bash
set > /tmp/systemd/set.out
export > /tmp/systemd/export.out

Можно ещё добавить вот это

ldd /путь/до/вашей/программы/program > /tmp/systemd/ldd.out

Вместо bash можете указать ваш SHELL - это может быть важно.

Всё, выполняете эти же команды, только с выводом в другие файлы.

В вашем SHELL:

set > /tmp/shell/set.out
export > /tmp/shell/export.out
ldd /путь/до/вашей/программы/program > /tmp/shell/ldd.out

Сравниваете, можно через diff.

diff -ur /tmp/shell /tmp/systemd

Всё, находите разницу в настройке окружения - выставляете так же в systemd unit файле, запускаете, радуетесь.

Можете написать скрипт запуска программы и запускать его, но настройки окружения лучше проверить.

Я просто поражаюсь, когда кому-то пишешь как проверить, но он просто не понимает написанного, то он ничего не спрашивает и не делает, а просто пишет - ничего не получилось, значит не возможно - такой его вывод.

Вот у вас так же.

В начале - как запустить как демон.

Вам написал как и что нужно проверить, но вам сложно и вы уже вроде как готовы сделать не так, как хотели изначально.

Мне всё равно, просто интересно это наблюдать.

Как только человек понимает, что он не понимает. Он считает, не что он не прав и невозможно, собственно из-за него (человека), потому, что он ему не хватает знаний, а говорит, что невозможно в принципе и будут делать хоть как-то.

Честно, вот просто весело )))

Для systemd точно должны быть какие-то анализаторы запуска, но так, как я привёл 100% будет достаточно для анализа.

Удачи, запускайте так, как вам удобнее.

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

Вы же пришли, видимо, сразу за готовым ответом, даже хотя бы не предоставив само программное обеспечение, хотя бы название.