2012-08-29 4 views
3

저는 초기화시 PHP 스크립트를 실행하고 지속적으로 웹 소켓 및 로그 연결을 사용하여 이벤트를 수신하는 Wordpress 플러그인을 작성하고 있습니다.Wordpress 플러그인 비활성화 이벤트

shell_exec('php restserver.php >restserver.log 2>&1 &'); 

언급 한 스크립트는 워드 프레스 API의 밖에 있습니다. exec 또는 shell_exec을 사용하여 알고 있다는 극단적 인 방법 (종종 worng 질문에 대한 답변)입니다.

플러그인을 사용할 수없는 경우이를 치료하고 플러그인이 다시 시작될 경우 스크립트를 다시 실행하지 못하도록 restserver.php 프로세스 ID를 기록 할 수있었습니다. 그래서 짧은

...

  1. 워드 프레스의 독립적 인 배경의 PHP 프로세스를 실행할 수있는 더 나은 방법이 있나요

    ?
  2. 플러그인 사용 중지 이벤트를 감지하고이 전에 kill 프로세스 명령을 실행하는 "가장 좋은 방법"이 있습니까?

편집 : 비밀은 분명히 당신의 클래스 또는 마법을 함수를 등록하는 register_activation_hook()register_deactivation_hook()을 사용하여 거짓말 2 번 질문합니다.

어쨌든 나를 위해 일했습니다. exec() 올바른 방법을 사용하는 방법에 대한 자세한 내용은 언제나 환영합니다.

답변

0

다양한 작업의 병렬 실행을 위해 설계된 GearMan이라는 유닉스 서버가 있습니다. PHP를위한 클라이언트 라이브러리가있어서 작업자를 시작하고 백그라운드 작업을 포함하여 실행을 모니터링 할 수 있습니다. 그래서 이것은 하나의 (우아한) 방법 일 것이지만 GearMan 서버와 관리자 액세스를 의미하는 클라이언트 라이브러리를 설치해야합니다.

또 다른 간단한 방법은 cronjob을 추가하는 것입니다. 이것은 cronjob 파일에 쓰고 cronjob 데몬에게 새 설정을로드하도록 요청하는 액세스 만 필요합니다. 작업 목적으로 cronjob에서 PHP를 실행하는 것은 exec 호출에서 시작하는 것보다 더 합리적입니다.

+0

감사합니다. cronjob을 즉시 사용할 수있게되어서 고맙겠습니다. 플러그인을 제거하면 즉시 제거 할 수 있습니다. –