LINUX.ORG.RU

Настроить ldconfig


0

1

Вообщем и целом ситуация непонятная.
Сегодня программеры пересобрали Ruby на сервере.
После этого перестали аплоадится картинки на сервер.
Лечится запуском ldconfig и рестартом nginx.
Нарисовал костыль который при старте сервера будет дергать ldconfig и рестарт nginx.
Но не помогло. Видать ldconfig не может стартовать вместе с системой.
Но это ж не дело. Ведь наверняка можно как-то это пофиксить.
Может посоветуете что-то?
в логе апликейшена

Paperclip::NotIdentifiedByImageMagickError (/tmp/stream3759-1 is not recognized by the 'identify' command.):
  paperclip (2.3.1.1) lib/paperclip/geometry.rb:24:in `from_file'
  app/models/asset.rb:77:in `validate'
  app/controllers/assets_controller.rb:8:in `create'
  haml (2.2.23) rails/./lib/sass/plugin/rails.rb:20:in `process'
  passenger (3.0.2) lib/phusion_passenger/rack/request_ha

Всё что вы описали - делает пакетный менеджер. Продолжайте дальше «пересобирать на сервере» со своей слакой.

Led ★★★☆☆ ()

смотри в сторону /etc/ld.conf

enep ★★★★ ()

У вас исчерпывающее описание системы :)

Могу только предположить, что часть библиотек находится на файловой системе, монтируемой достаточно поздно (после запуска вашего костыля). ldconfig запускают один раз после установки библиотек. Рестар nginx понятен после выполнения ldconfig, но зачем делать это при каждой загрузке сервера?

mky ★★★★★ ()

> Нарисовал костыль который при старте сервера будет дергать ldconfig и рестарт nginx.

Это одноразовая операция. При старте системы совершенно ненужная.
Покажите хотя бы что и куда было рассовано и содержимое /etc/ld.so.conf (Если это каталог, то cat /etc/ld.so.conf/*)

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

система Debian Lenny 5
на ем живет nginx (frontend) и passenger (backend)
сайт написан на Ruby on Rails

root@srv-4-0:/etc# cat ld.so.conf.d/*
# libc default configuration
/usr/local/lib
# Multiarch support
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu
костыль этот убрал.
поставил nginx в автозагрузку через Crontab
@reboot root /opt/nginx/nginx start
и так проблема ушла.
но появилась другая.
есть рельсовые скрипты которые должны стартовать при запуске сервера
решил попробывать бутнуть их тоже через крон
не бутаются.
крон чесно пишет в логе что выполнил их но в процессах их нет
просто добавление скрипта в init.d/ не помогает ибо их нужно пускать под конкретным юзером.
что делать?

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

Пускай скрипт из инита под пользователем
Намёк:

# su - postgres -c id
uid=70(postgres) gid=70(postgres) groups=70(postgres)

# su - mike -c id
uid=1000(mike) gid=100(users) groups=100(users),7(lp),10(wheel),18(audio),19(cdrom),27(video),35(games),80(cdrw),85(usb),106(lpadmin),123(ntp),250(portage),1002(polkituser),1003(pulse-access),1004(pulse),1006(haldaemon),1007(plugdev),1008(netdev),1014(scanner),1017(vboxusers),1023(qemu),1024(vmware),1029(kvm),1031(android),1032(libvirt)

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

Тебе нужно запустить какую-то программу (или скрипт) с учётной записью пользователя?
Тогда пускаешь от рута следующее:

su - имяпользователя -c имяпрограммы

Если будешь пускать не от рута, то придётся ввести пароль рута.
Крон и скрипты инициализации выполняются с рутовыми правами.
Возможно, что не будет каких-то переменных окружения.
На всякий случай нужно будет использовать имя программы с её полным путём.

Куда ты вставишь su никакой роли не играет. Совершенно. Главное, чтобы выполнилось.

Lumi ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.