GNU / Linux dağılımı gibi “çevreye bağlı” dıĢında sorunuza doğrudan bir cevap yoktur.
Yarı ilgili ayrıntılara girmeden önce, neden sudo service import-image-service
işe yaramadığını, import komutunun ekran görüntüsünü nereye ve nasıl alacağınızı bilmek için çevre hakkında yeterli bilgiye sahip olmadığı için bilmelisiniz. Adam sudo okumak şöyle:
DESCRIPTION
sudo allows a permitted user to execute a command as the superuser or
another user, as specified by the security policy.
Bu biraz şifreli ve bu "güvenlik politikası" nı öğrenmek eğlenceli, ama belki de en sevdiğiniz etkinliklerden biri değil. Size söyleyeyim, bu , sudo run ile yalıtılmış bir ortamda çalıştırılan komutlar anlamına geliyor .
Buna karşılık, /etc/init.d/myservice
çünkü ortam-kurulum-politikası, bazı aklı başında olan varsayılanları yapılandırmak için adımlar atıyor export DISPLAY=:0.0
. Bir hizmetin bir X sunucusunun varlığı hakkında doğru şekilde nasıl bilgilendirileceğini bulmak için kullanılan dağıtımın karmaşıklıklarını araştırmanız gerekecektir. Bu arada, deneyebilirsinizsudo -E service myservice
-E The -E (preserve environment) option indicates to the secu‐
rity policy that the user wishes to preserve their existing
environment variables. The security policy may return an
error if the -E option is specified and the user does not
have permission to preserve the environment.
Bazı arka plan
Uyarı: Bu bölüm yarı gerçekli ve tarihsel önyargılı
GNU / Linux sistemindeki servisler bir dağıtımdan diğerine keyfi bir şekilde davranır. Çoğunlukla, hizmet çalıştırılmadan önce ortam kurulumunda fark vardır . Bu, en önemlisi olan birkaç faktöre bağlıdır:
- init sistemi
- düz Sistem V init + posix kabuğu (Slackware, Debian)
- OpenRC (Gentoo)
- Başlangıcı (Ubuntu)
- systemd (birçok yeni dağıtım)
- çevre-kurulum-politikasını dağıtır *
- belirli init betiğinin ayrıntıları
Debian, Slackware ve Gentoo (OpenRC), /etc/init.d/ hizmetlerinin isteğe bağlı olarak / etc / default / servicename, /etc/conf.d/servicename ve benzerlerinden ek bilgi alan bağımsız komut dosyaları olduğu düşünülen benzer bir yaklaşım kullanır . Betikler, / lib / lsb / init-functions veya /lib64/rc/sh/functions.sh gibi dağıtıma özgü init işlevine dayanabilir veya güvenmeyebilir. Bu ek kabuk kütüphaneleri, ek dağıtıma özgü kaynaklardan bilgi alabilir (ortamı düzenler).
Ubuntu (Upstart) ve systemd, her hizmetin bir konfigürasyon dosyasına sahip olduğu ve init sisteminin tüm sihirleri yaptığı "tamamen" farklı bir yaklaşıma sahiptir.
Neler olup bittiğini tam olarak anlamak için, init sistemini ve kullanılan dağıtımın tuhaflıklarını okumak ve anlamak gerekir.
* Ortam değişkenlerini başlatma ve bir servisi başlatma işlemi.
import
Komutu çalıştırarak şimdi çalıştısudo -u <user> import..