Kullanıcı oturum açmış başka masaüstünde PHP kabuk komut çalıştır

2 Cevap php

The Setup: I have a LAMP server (Ubuntu 9.10) which is also hooked up to my HDTV. Upon boot, one user is automatically logged in so as to have a desktop environment on screen.

What I want: I've been developing a remote, web interface in PHP for various things (play music, for example). However, I've hit a snag in that I would like to run a windowed program and have it display on the TV. Obviously, since PHP/Apache is running under the user www-data, this isn't going to happen just by running my command via exec().

Şu anda benim diğer kullanıcı oturumunda açmış, ya da bir program olarak çalıştırabilirsiniz bir Linux komut var mı?

2 Cevap

(X) programı başlangıç ​​kanca kadar hangi X oturumunu belirlemek için DISPLAY değişkeni kullanır. Bu bir kullanıcı kutusu varsa, kullanıcı şu anda sahip olduğu X oturumu anlamaya gerekir olması en muhtemel olan: 0.

Then you could write a simple bash script to 1. Set the DISPLAY (and other variables as needed) 2. Execute.

-

Başka bir çözüm düz bir dosyaya gerekli bilgileri yazmak ve daha sonra bir cron işi her bir veya üç saniyedir güncellemeleri kontrol sahip olacaktır. Cron belirtilen bir kullanıcı olarak çalıştırmak için yapılandırılabilir. Çirkin ama zarf içerisinde sunulmalıdır iş.

Mataisf dediği gibi - Eğer programın nerede penceresini oluşturmak için bilmesi DISPLAY değişkenini ayarlamanız gerekir. Ancak bir X sunucusu (klavye, ekran ve fare olduğu yer) erişim yetkisiz programları engelleyen bir kimlik doğrulama sistemi var. Bu etrafında bir yolu yerel makineden bağlayan herhangi bir program erişimi sağlamaktır:

xhost +localhost

.... Ama daha iyi bir çözüm bunu yapmak için farklı şekillerde çok sayıda bulunmaktadır oturum kullanıcı olarak programı çalıştırmak olacaktır - ama muhtemelen en pratik sudo, eg

sudo -u console_user program

Bunu önce Xauth (Eğer sudo için-H bayrağı ile yapabilirsiniz) düzgün çalışır böylece ANA değişkeni ayarlamak isteyebilirsiniz unutmayın.

Eğer programı console_user ve / etc / sudoers dosyasındaki web sunucusu kullanıcıyı yapılandırmanız gerekir unutmayın.

C.