it-swarm.com.de

Umgebungsvariable global festlegen

Ich habe kürzlich diesen Blogbeitrag zur Leistung gesehen, wenn die TZ-Umgebungsvariable nicht gesetzt ist: https://blog.packagecloud.io/eng/2017/02/21/set-environment-variable-save-thousands-of -systemaufrufe /

Ich habe dieses Problem bemerkt, als ich laufende Daemons auf meinen Systemen verfolgte und möchte es beheben. Ich habe in der offiziellen Ubuntu-Dokumentation nachgeschlagen, wo Umgebungsvariablen definiert werden sollen: https://help.ubuntu.com/community/EnvironmentVariables

Ich habe versucht, TZ in/etc/environment und in /etc/profile.d/test.sh zu definieren, aber ich kann diese Umgebungsvariable nicht in allen Fällen zur Verfügung stellen (z. B. wenn ich bash nur ohne --login ausführe oder wenn ich laufe) das im obigen Artikel bereitgestellte Beispielprogramm c). Wie kann ich die TZ-Umgebungsvariable vollständig systemweit definieren?

Vielen Dank!


Bearbeiten: Es wurde vorgeschlagen, dass meine Frage ein Duplikat von dieser andere Beitrag ist, aber die in diesem Beitrag beschriebenen Methoden lösen dieses Problem nicht. Ich habe beide ausprobiert: Sudo dpkg-reconfigure tzdata und Sudo timedatectl set-timezone America/New_York. Danach bestätigte ich, dass/etc/localtime erwartungsgemäß ein gültiger Symlink ist. Nach einem Neustart werden jedoch immer noch 10 stat () -Aufrufe nach/etc/localtime angezeigt, wie im ursprünglichen Artikel, den ich oben gepostet habe, dokumentiert. Das von mir gesuchte Verhalten (wie im Originalartikel dokumentiert) bewirkt, dass/etc/localtime nicht wiederholt angegeben () wird, was sehr ineffizient ist

1
Andrew Martin

Ich nehme an, Sie haben so etwas gemacht

TZ=:/etc/localtime

Dies wird sich jedoch nicht auf Subshells ausbreiten - und Ihre normale Bash-Shell ist eine Subshell der weiteren Umgebung. Sie müssen also Folgendes tun:

export TZ=:/etc/localtime
2
taifwa