Wie führe ich vor dem Herunterfahren mit systemd ein Bash-Skript aus?

Wie führe ich vor dem Herunterfahren mit systemd ein Bash-Skript aus?

Ich habe ein ausführbares Bash-Skript (.bash_history_cleaner), das meinen Bash-Verlauf bereinigt

#!/bin/bash
cat /dev/null > ~/.bash_history && history -c && exit

Ich möchte dieses Skript beim Herunterfahren oder Neustarten des Systems ausführen unddiese Antwort, die systemd verwendetmit dem Dienstnamen as bash_history_cleaner.serviceund aktivierte ihn in systemctl. Der Dienst ist aktiv und läuft,

[Unit]
Description=Bash History Cleaner

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/home/eka/Scripts/.bash_history_cleaner

[Install]
WantedBy=multi-user.target

Das beabsichtigte Verhalten sollte darin bestehen, meinen Bash-Verlauf beim Herunterfahren oder Neustarten zu löschen. Aber es funktioniert nicht. Ich habe das System mehrmals heruntergefahren und neu gestartet, aber das Skript wird nicht ausgeführt. Wie führen wir mit systemd ein Bash-Skript vor dem Herunterfahren aus?

Antwort1

Warum nutzen Sie nicht die Vorteile des Linux-Systems und seiner /tmpVerzeichnisse, um Ihre Daten .bash_historyan einem flüchtigeren Ort zu speichern?

Um den Speicherort Ihrer .bash_historyDatei zu ändern, müssen Sie die HISTFILEVariable festlegen. Um die Datei bei jedem Neustart zu löschen, platzieren Sie die Datei im /tmp/Verzeichnis.

~/.bashrcDamit diese Einstellungen erhalten bleiben, können Sie Ihrer Datei beispielsweise Folgendes hinzufügen :

HISTFILE=/tmp/.bash_history

Sie können sicherstellen, dass andere Benutzer Ihren Verlauf nicht lesen können, indem Sie die Dateiberechtigungen der erstellten Verlaufsdatei überprüfen:

ls -lsa /tmp/.bash_history

Dies führt dazu, dass der Verlauf Ihres Benutzers beim Neustart gelöscht wird, andere Benutzer werden davon jedoch nicht betroffen. Sie können diese Konfigurationsdateien auf Systemebene so einstellen, wie /etc/bash.bashrcSie es wirklich möchten. Sie können sogarin /tmpden RAM legenum sicherzustellen, dass es gelöscht wird.

verwandte Informationen