Как изменить формат командной строки bash?

Посмотрите на ExecStop или ExecStopPost

ExecStop

Команды, которые необходимо выполнить для остановки службы, запущенной через ExecStart=. Этот аргумент принимает несколько командных строк по той же схеме, что и для ExecStart= выше. Использование этого параметра не является обязательным. После выполнения команд, настроенных в этой опции, все процессы, оставшиеся для службы, завершаются в соответствии с настройкой KillMode= (см. systemd.kill(5)). Если эта опция не указана, процесс завершается отправкой сигнала, указанного в KillSignal=, когда запрашивается остановка службы. Поддерживается подстановка спецификаторов и переменных среды (включая $MAINPID, см. выше).

...

Рекомендуется использовать этот параметр для команд, которые обмениваются данными со службой, запрашивающей чистое завершение. При выполнении команд, указанных с помощью этой опции, следует исходить из того, что сервис все еще полностью работоспособен и способен корректно реагировать на все команды. Для действий по очистке после смерти используйте вместо этого ExecStopPost=.

ExecStopPost

Дополнительные команды, которые выполняются после остановки службы. Сюда входят случаи, когда использовались команды, настроенные в ExecStop=, когда для службы не было определено никакого ExecStop=, или когда служба неожиданно завершала работу.Этот аргумент принимает несколько командных строк по той же схеме, что и для ExecStart=. Использование этих настроек не является обязательным. Поддерживается подстановка спецификаторов и переменных среды. Обратите внимание, что, в отличие от ExecStop=, команды, указанные с помощью этого параметра, вызываются, когда служба не запускается правильно и снова закрывается.

Рекомендуется использовать этот параметр для операций очистки, которые должны выполняться, даже если служба не запустилась должным образом. Команды, настроенные с помощью этого параметра, должны иметь возможность работать, даже если служба не запустилась на полпути и оставила не полностью инициализированные данные. Поскольку процессы службы уже были завершены, когда команды, указанные с помощью этого параметра, выполняются, они не должны пытаться взаимодействовать с ними.

Обратите внимание, что все команды, настроенные с помощью этого параметра, вызываются с кодом результата службы, а также кодом выхода и статусом основного процесса, установленными в переменных окружения $SERVICE_RESULT, $EXIT_CODE и $EXIT_STATUS, см. systemd.exec(5) для получения подробной информации.

Оба они могут использоваться для запуска команд, когда служба остановлена.

Основные различия между ними:

  • ExecStop запускается, пока основной процесс все еще работает, и запускается только тогда, когда служба останавливается после нормальной работы (имеются в виду все службы ExecStart и ExecStartPre должны завершиться успешно, и любые условия... тоже должен пройти.

  • ExecStopPost запускается, даже если «служба завершилась неожиданно», что покрывает сбои.Самое большое преимущество этого заключается в том, что когда у вас есть несколько ExecStart, если один из них завершается успешно, а другой терпит неудачу, ExecStopPost можно использовать для устранения частичного успеха.

0
16.08.2017, 23:37
1 ответ

Если вы хотите увидеть:(последнюю часть вашего текущего каталога ), за которой следует знак решетки, вы должны использовать:

PS1='\W# '

Поместите эту строку в файл .bashrcв вашем домашнем каталоге.

Хотя я бы предостерег вас от использования #в командной строке, отличной от -, так как принято использовать что-то вроде >или $в строках приглашения, отличной от -, и #в корневой подсказке. быстрый.

Ссылка:Запрос оболочки Bash

2
28.01.2020, 02:15

Теги

Похожие вопросы