Во-первых, как и говорили другие, вам нужно установить их с WantedBy=default.target
вместо WantdBy=multi-user.target
. Это стандартный способ включения пользовательских единиц.
Но также, если вы хотите, чтобы они запускались при загрузке, см. эту запись ArchWiki о запуске пользовательских модулей systemd при загрузке вместо привязки к входу в систему.
Вкратце:
# loginctl enable-linger username
(Кстати, Unit=rsync_backup1.service
является избыточным, так как файл таймера и сервисный файл имеют одинаковое базовое имя)
Вы можете использовать что-то вроде этого:
pkill $(pgrep python | grep -xv $(pgrep test.py))
Работая изнутри наружу, это:
pgrep test. py
grep -xv
, который исключит его (-v
; опция -x
говорит, что нужно искать всю строку (PID)) из списка, собранного: pgrep python
для сбора списка скриптов python, которые вы хотите убитьВозможно, вам придется подправить pgrep, чтобы найти именно те процессы python, которые вам нужны, но это основная структура. Адаптируйте ее к вашей ситуации, работая заново изнутри:
запустите pgrep test.py
, чтобы убедиться, что он находит именно тот PID, который вы ожидаете. Рассмотрите опцию pgrep -f
для соответствия полному имени процесса, чтобы быть более уверенным.
запустите pgrep python
(или аналогичный), чтобы найти "скрипты python", которые вы хотите уничтожить.
соберите все вместе!