php kullanarak pc yeniden başlatın

6 Cevap

Bu php kullanarak pc yeniden mümkün mü?

6 Cevap

Bu exec() veya system() kullanabilirsiniz ama PHP apache çalıştırmak kullanıcı çalıştırılan gibi izin sorun olacağı doğrudur.

Hızlı bir çözüm olarak, kullanıcı apache yeniden izin verilebilir. Bu oldukça zor olabilir ayarı, sisteminize bağlı.

Yapabileceğiniz diğer bir yolu Cron görevi (root ait olduğu) bazı dosyası her dakika (veya saniye) kontrol ve PHP programı tarafından düzenlenebilir bu dosyayı sahip olmaktır. Dosya sadece Apache tarafından düzenlenebilir olarak ayarlanır. Bu yapmak çok daha kolaydır.

Umarım bu yardımcı olur.

Bilgisayarınızı yeniden başlatmak için bir sistem komutu çalıştırmak için bir yöntem exec() kullanın veya system() gibi-olabilir.

Bizim sistemimizde, Paul tarafından söylendi birini yapın.

  1. (: / Veri / komut / örneğin) bazı komut dir yazacak bir komut dosyası var. Eğer olsa bu senaryoyu sertleşmiş var.
  2. Komut dir kontrol edecektir Dakikada çalıştırmak cron'u var. Bir yeniden başlatma komutu varsa, bu cron sistemi yeniden başlatma komutunu patlayacaktır.

Ben Debian / Lenny çalışan CarPC kurulumu için aynı ihtiyacı vardı. Ben bir bağlantı olduğu hizmet için limana yapıldığı zaman / sbin / reboot çalıştırmak için inetd yapılandırılmış.

Ben daha sonra bir PHP komut dosyası localhost / bağlantı noktasına bir fsockopen () yapmak ve anında yeniden gerçekleştirir vardı.

Hızlı kurulum (debian - sisteminiz için değiştirin):

In /etc/services add a line "reboot 88/tcp" (or whatever port you want) In /etc/inetd.conf add a line "reboot stream tcp nowait root /sbin/reboot" Restart inetd using /etc/init.d/openbsd-inetd restart

Şimdi localhost bağlanmak: 88 ve sistem yeniden başlayacaktır.

Eğer güvenlik biraz sıkın localhost'tan sadece bağlantılarını kabul edecek şekilde yapılandırabilirsiniz xinetd'nin sistem çalışıyorsa. Her durumda, bu hala kesmek.

Genellikle bir bilgisayarı yeniden başlatmanız süper hakları gerekir. Ama yetkili kullanıcı olarak bir web sunucusu çalıştırmak için kötü bir uygulamadır. Bazı arası iletişim yapmak için tavsiye ederim. E. g. PHP komut dosyadaki bir gizli anahtarı yazıyor ve sonra bir cron iş dosyasını okur ve bilgisayarı yeniden başlatır.

Ve ben tüm Web üzerinden bir bilgisayarı yeniden başlatmak için iyi bir fikir olduğundan emin değilim. Neden bunu yapmak istersiniz?

Bu cevap bir linux tabanlı sunucu ile ilgilidir.

TEHLİKELİ: php kullanım sistemi () itibaren, sistemde, kapatma için "şimdi sudo shutdown-h" yeniden ve "şimdi sudo shutdown-r" kullanın.

/ Etc / sudoers olarak, apache kullanıcı için kapatma çalıştırmak için izin eklemek

Bir sorun sudo bir parola soracak olabilir.

Apache kullanıcının parolasını kaldırmak (ama sonra vb sshd.config, telnetd, ftpd, koşmak yok ..) ya da / etc / sudoers bir şifresiz konfigürasyona sahip olmadığını görmek ya. Hat 200 ve tekrar hattı 270 hakkında hakkında "adam Sudoers" Tag_Spec kullanıcı bir sudo komutu çalıştırmak için kendi şifresi ile yeniden doğrulamak zorunda olmadığını belirtmek için NOPASSWD içerebilir diyor.

SAFER: belirteci / cron php yerde bir dosyayı yazmak mı. Bu dosya varsa, dosya kaldırılır ve sonra kapatma veya yeniden başlatma çalıştırmak böylece root olarak cron tarafından işletilen bir senaryo yazın.