Ankündigung

Einklappen
Keine Ankündigung bisher.

Prüfen ob script bereits läuft

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Prüfen ob script bereits läuft

    Wie kann ich prüfen ob der Script bereits läuft? (anderer User)

    Wenn er läuft führe was bestimmtes aus


  • #2
    sehr konkrete frage!

    also, nutze ps (auf(*nix)
    Code:
    ps ax | grep mein_scrtipt_heisst so

    Kommentar


    • #3
      Plattformunabhängig:
      Setze mit Skriptstart eine Information an geeigneter Stelle (Datenbank, varCache, ..) und lösche diese am Skriptende.
      PHP-Klassen auf github

      Kommentar


      • #4
        Zitat von jspit Beitrag anzeigen
        Plattformunabhängig:
        Setze mit Skriptstart eine Information an geeigneter Stelle (Datenbank, varCache, ..) und lösche diese am Skriptende.
        Klappt aber auch nur solange wie das Script ohne Fehler beendet wird.

        Es gibt eine Symfony Componente, welche man dafür benutzten kann. Ich weiß selber aber auch nicht genau, wie diese mit Scriptabbrüchen umgeht:

        http://symfony.com/doc/current/compo...k_handler.html

        Kommentar


        • #5
          Zitat von Zeichen32 Beitrag anzeigen
          Klappt aber auch nur solange wie das Script ohne Fehler beendet wird.
          Richtig. Ein Timestamp als Information wirkt da Wunder. Ist dieser veraltet kann die Information gelöscht werden. Das ganze ist primitiv und wirkungsvoll zugleich, hab es schon für diverse Zwecke benutzt.

          Wenn er läuft führe was bestimmtes aus
          Das ist wieder so eine der überhaus 'hilfreichen' Informationen zum Umfeld...
          PHP-Klassen auf github

          Kommentar


          • #6
            Zitat von jspit Beitrag anzeigen
            Plattformunabhängig:
            Setze mit Skriptstart eine Information an geeigneter Stelle (Datenbank, varCache, ..) und lösche diese am Skriptende.
            Noch besser, öffne eine Datei und locke sie. Der Lock müsste beim Ende (Absturz, ...) vom OS wieder aufgehoben werden.
            oder: Schreibe die PID in ein File und prüfe mit ps.
            GitHub.com - ChrisAndChris - RowMapper und QueryBuilder für MySQL-Datenbanken

            Kommentar


            • #7
              Zitat von ChristianK Beitrag anzeigen
              Noch besser, öffne eine Datei und locke sie. Der Lock müsste beim Ende (Absturz, ...) vom OS wieder aufgehoben werden.
              PHP's flock() hat verschiedene Stolperfallen eingebaut: Es kann bpsw. in einer Multithreaded-Umgebung (mod_php) passieren, dass zwei verschiedene Scripts die gleiche Datei "flock()-en" dürfen, weil sie zum selben Prozess gehören.

              Zu flock()-Alternativen (und warum die meisten nicht funktionieren) siehe die Benutzerkommentare auf der Handbuchseite.
              Wenn man die Wurst schräg anschneidet, hält sie länger, weil die Scheiben größer sind.

              Kommentar

              Lädt...
              X