Посмотрите на ExecStop
или ExecStopPost
Команды, которые необходимо выполнить для остановки службы, запущенной через ExecStart=. Этот аргумент принимает несколько командных строк по той же схеме, что и для ExecStart= выше. Использование этого параметра не является обязательным. После выполнения команд, настроенных в этой опции, все процессы, оставшиеся для службы, завершаются в соответствии с настройкой KillMode= (см. systemd.kill(5)). Если эта опция не указана, процесс завершается отправкой сигнала, указанного в KillSignal=, когда запрашивается остановка службы. Поддерживается подстановка спецификаторов и переменных среды (включая $MAINPID, см. выше).
...
Рекомендуется использовать этот параметр для команд, которые обмениваются данными со службой, запрашивающей чистое завершение. При выполнении команд, указанных с помощью этой опции, следует исходить из того, что сервис все еще полностью работоспособен и способен корректно реагировать на все команды. Для действий по очистке после смерти используйте вместо этого ExecStopPost=.
Дополнительные команды, которые выполняются после остановки службы. Сюда входят случаи, когда использовались команды, настроенные в ExecStop=, когда для службы не было определено никакого ExecStop=, или когда служба неожиданно завершала работу.Этот аргумент принимает несколько командных строк по той же схеме, что и для ExecStart=. Использование этих настроек не является обязательным. Поддерживается подстановка спецификаторов и переменных среды. Обратите внимание, что, в отличие от ExecStop=, команды, указанные с помощью этого параметра, вызываются, когда служба не запускается правильно и снова закрывается.
Рекомендуется использовать этот параметр для операций очистки, которые должны выполняться, даже если служба не запустилась должным образом. Команды, настроенные с помощью этого параметра, должны иметь возможность работать, даже если служба не запустилась на полпути и оставила не полностью инициализированные данные. Поскольку процессы службы уже были завершены, когда команды, указанные с помощью этого параметра, выполняются, они не должны пытаться взаимодействовать с ними.
Обратите внимание, что все команды, настроенные с помощью этого параметра, вызываются с кодом результата службы, а также кодом выхода и статусом основного процесса, установленными в переменных окружения $SERVICE_RESULT, $EXIT_CODE и $EXIT_STATUS, см. systemd.exec(5) для получения подробной информации.
Оба они могут использоваться для запуска команд, когда служба остановлена.
Основные различия между ними:
ExecStop
запускается, пока основной процесс все еще работает, и запускается только тогда, когда служба останавливается после нормальной работы (имеются в виду все службы ExecStart
и ExecStartPre
должны завершиться успешно, и любые условия...
тоже должен пройти.
ExecStopPost
запускается, даже если «служба завершилась неожиданно», что покрывает сбои.Самое большое преимущество этого заключается в том, что когда у вас есть несколько ExecStart
, если один из них завершается успешно, а другой терпит неудачу, ExecStopPost
можно использовать для устранения частичного успеха.
Если вы хотите увидеть:(последнюю часть вашего текущего каталога ), за которой следует знак решетки, вы должны использовать:
PS1='\W# '
Поместите эту строку в файл .bashrc
в вашем домашнем каталоге.
Хотя я бы предостерег вас от использования #
в командной строке, отличной от -, так как принято использовать что-то вроде >
или $
в строках приглашения, отличной от -, и #
в корневой подсказке. быстрый.
Ссылка:Запрос оболочки Bash