debian apache Verwirrung
Hallo,
>> Ich mache gerade ein paar Experimente mit
>> Apache und CGI (in C). Da das noch nicht so
>> tut, wie ich das vorgestellt hatte und ich
>> noch nicht verstehe, was ich falsch mache,
>> wollte ich mit fprintf() Meldungen in eine
>> Datei unter /tmp/ schreiben.
>> Da ich einen gültigen FILE Zeiger zurück
>> bekomme, gehe ich davon aus, daß die Datei
>> tatsächlich erzeugt wird. Wie kann ich nun
>> diese Datei finden?
> Der Apache2 unter Debian 9 verwendet den
> PrivateTmp Mechanismus von Systemd.
> Vgl. /lib/systemd/system/apache2 und darin den
> Eintrag PrivateTmp=true, falls vorhanden.
Wow. Es gibt tatsächlich einen Mechanismus, der
fopen ("/tmp/mytest.log", "a"); in ein nicht
auffindbares Verzeichnis verschiebt?! In den
Dateien
/lib/systemd/system/apache2@.service
/lib/systemd/system/apache2.service
existiert dieses PrivateTmp.
> Das bedeutet, dass das /tmp Verzeichnis des
> Apachen und seiner Unterprozesse, zu denen
> auch ein CGI Skript gehört, irgendwo
> unter /var/tmp/systemd-private* zu finden ist.
Das war's. Ich muß ein eigenes dir verwenden,
dann geht es wieder. Ich habe systemd nie
verstanden und werde es auch nie verstehen. Und
mit dem UUID, oder was das ist, ist es
unmöglich in meinem Programm meine Datei wieder
zu finden. systemd verbietet also /tmp zu
verwenden. Dann darf ich wohl nicht vergessen,
die temporären Dateien manuell wieder zu
löschen.
Besonders seltsam finde ich, daß der
verschobene Dateiname nicht unter /proc
erscheint.
Naja, Windows verstehe ich ja auch nicht...
Vielen Dank
Reply to: