Systém () volá úspěšný z script / console, ale tiše nedaří v aplikaci

hlasů
0

Konkrétně volá gpg.

Mám těžké vystopovat problému as protokoly nedávají žádný výstup pro tyto selhávajících hovory a fungují perfektně z výrobního pultu.

Snažil jsem se zadáním cesty k gpg:

  system path/to/gpg --all -my --encryption -options

a se ujistit, že cestující běží pod stejným uživatelem, že jsem vstupující do konzole jako. Také jsem se snažil backticking a% x () Ing příkazy při hledání více podrobného odpovědi.

Žádné štěstí. Modlitba, tanec a násilí se ukázaly stejně k ničemu.

Položena 28/03/2011 v 07:08
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
1

Chcete-li pomoci ladění problémů takhle, můžete zkusit volat bash skript, který zpracovává záznam problémů, namísto příkazu přímo:

#!/bin/bash
# my_gpg_script.sh

set -e
set -u
set -x
set -v

path/to/gpg --all -my --encryption -options > /var/log/whats_happening.log

Pak volat system "my_gpg_script.sh"z ruby.

Odpovězeno 28/03/2011 v 07:20
zdroj uživatelem

hlasů
0

Lebreeze mě dostal na správné cestě, ale já jsem nikdy nemohl dostat STDOUT přesměrovat do svého deníku a skončil s ladit sledováním celý způsob, jak je navrženo v průběhu zde https://serverfault.com/questions/98994/suppress-gpg -reading-passphrase-ze-souboru-deskriptor-0-message

strace path/to/gpg --all -my --encryption -options 2>>/var/log/whats_happening.log

Ukázalo se, že problém cesta. Jsem si naivně myslel, že $ PATH by byla stejná v konzoli a aplikací tak dlouho, jak životní prostředí a uživatelsky byly stejné. Není tento případ. Přidání některé další cesty v mém souboru httpd.conf mi opravil ačkoli.

SetEnv PATH /this/bin:/that/other/bin:/and/dont/foget/bin
Odpovězeno 29/03/2011 v 15:48
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more