2010-10-05 30 views
12

Bir deamon olarak çalışan bir linux hizmeti oluşturdum (ve /etc/init.d/X'ten başlıyor). Uygulama tarafından erişilebilecek bazı ortam değişkenlerini ayarlamam gerekiyor.Asterisk için Linux hizmetimde ortam değişkenlerini nasıl gerçek bir kullanıcıya sahip olmasa da nasıl ayarlayabilirim?

İşte senaryo. Uygulama asterisk kullanıcı bağımlı (ve bu nedenle çalıştırmak gerekir) bağlı bir grup Perl AGI betikleridir, ancak yıldız işareti bir kabuk yok. İdeal olarak bunu /home/asterisk/.bashrc'da ayarlayabilirdim, ancak bu yıldız işareti için mevcut değil.

Yıldızlar uygulamasının çalışma ortamında benim uygulamam için ortam değişkenlerini nasıl ayarlayabilirim böylece uygulama bunları kullanabilir?

cevap

20

Ya başlatma komut (/etc/init.d/yourdaemon) bunları ya benziyor bu dosyada bir çizgi koyun:

. /etc/yourdaemon.env 

ve sözdizimi export VAR=value kullanarak, bu dosyada ortam değişkenleri koydu. Red Hat benzeri sistemlerde, böyle bir dosya için doğru yerin /etc/sysconfig olduğuna inanıyorum. Debian/Ubuntu'nun bu amaç için /etc/default olduğu görülüyor.

+0

Bu yaklaşım denendi. Sorun şu ki, '/etc/init.d/yourdaemon' root olarak çalışmaktadır ve bu nedenle, komut dizimize yıldız işareti ile ulaşılamamaktadır. – domino

+0

Kullanıcıları nasıl değiştirirsiniz? –

+0

start-stop-daemon --start --chuid = $ USER --exec $ DAEMON. Bu, uygulamayı $ USER – domino