LINUX.ORG.RU

Проблема с запуском программы

 , ,


0

1

Программа написана на Lazarus для Linux. В каталоге сама программа и файл с данными. При запуске программы из каталога все работает. При помещении программы в автозапуск программа работает, но НЕ ВИДИТ файла с данными. В чем дело?



Последнее исправление: mankovsky (всего исправлений: 1)

Что значит помещение в автозапуск? Как в программе указан путь к файлу с данными?

anonymous
()

Программа ищет файл в текущем каталоге. Сделать сценарий:

#!/bin/bash
cd /opt/программа
./программа

Сделать исполняемым:
# chmod a+x /opt/программа.sh

В автозапуск положить .desktop файл с запуском сценария.

bormant ★★★★★
()
Ответ на: комментарий от bormant

cd /opt/программа

или (симлинки на эту программу не сработают - будет другой $0):

cd "$(dirname "$0")" /  cd "${0%/*}"

anonymous
()
Ответ на: комментарий от anonymous

В /home есть каталог, пусть /events. В нем бинарник myevent и текстовый файл с данными date.txt. При запуске программы с каталога все ОК. Если создаю ссылку в автозагрузке или на рабочем столе, то программа работает, но date.txt не видит.

mankovsky
() автор топика
Ответ на: комментарий от bormant

Спасибо! Все заработало. А ведь хотел написать скрипт.

mankovsky
() автор топика
Ответ на: комментарий от bormant

Зачем костыли? Во-первых, указать путь к файлу в аргументе. Во-вторых, по-моему в .desktop можно указаиь рабочий каталог

anonymous
()
Ответ на: комментарий от anonymous

Судя по спецификации «Desktop Entry Specification»:
https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-...
в .desktop указать текущий каталог запуска можно, выглядит как Path=/opt/программа.

указать путь к файлу в аргументе

Не вижу в исходном сообщении наличия подобной возможности.

А костыли затем, что сценарий можно позвать из любого места не только при помощи ярлыка .desktop. Правда тогда стоит в него писать

( cd /opt/программа ; ./программа )

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 4)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.