Небольшая переделка вашего perl
одного -вкладыша:
perl -mPOSIX -pe 's/picture\-/$&. POSIX::ceil(++$n\/2)/ge' index.txt
Добавленное число теперь составляет половину -n, округленное в большую сторону, поэтому результат увеличивается только через каждую вторую строку.
Судя по комментариям @ajgringo619 и @meuh, я применил следующее решение:
Вручную установите мой -файл daemon.service
Я переместил my-daemon.service
из каталога debian
моего проекта в другой каталог (Я использовал каталог conf
).
В файл моего проекта .install
добавлена строка для установки сервиса как пользовательского сервиса
conf/my-daemon.service /usr/lib/systemd/user/.
См. также эту страницу archlinux (, ссылку предоставил @meuh)
Включить службу
Чтобы сделать это, я не мог использовать systemctl
, потому что для этого пользователя не работает dbus, когда я запускаю установку (, т.е. я устанавливаю из своей учетной записи, а установочные пакеты создают «newuser», который существует, но не активен ). Поэтому, чтобы включить службу, я должен вручную создать программную ссылку.
Это требует небольшой работы. Сначала убедитесь, что папка существует, создайте программную ссылку, затем зафиксируйте права пользователя :
. mkdir -p /home/newuser/.config/systemd/user/default.target.wants
ln -s /usr/lib/systemd/user/my-daemon.service /home/newuser/.config/systemd/user/default.target.wants/.
chown -R newuser:newuser /home/newuser/.config/systemd
Очистка
Если вы хотите сделать наоборот (3 ), вы должны удалить программную ссылку и удалить папки. Используйте опцию -f
, если она уже была удалена, а на rmdir
используйте --ignore-fail-on-non-empty
. Для rmdir
убедитесь, что вы удалили каждый из них, сначала самый глубокий, чтобы получить состояние, подобное тому, которое было бы у вас до установки.
Автозапуск?
Создание ссылки в (3 )— это автозапуск (включение ), перезагрузите компьютер или выйдите из системы и снова войдите в нее как новый пользователь, и устройство будет запущено автоматически. Это предполагает, что сервис работает, конечно. Убедитесь, что ваш хочет правильно определен:
[Install]
WantedBy=default.target
Существуют и другие параметры, которые не будут работать в пользовательской службе. Например, нельзя указать параметры User=...
и Group=...
.Такие ошибки появятся в соответствующем журнале
journalctl --user -u my-daemon
Важное примечание :--user
очень важно, если вы ранее запускали свою службу как системную службу, с помощью --user
вы увидите журналы из системной службы и ничего из журналов вашего пользователя.
Еще одна деталь: мне нужно было открыть окно, и чтобы это работало, мне пришлось добавить переменную окружения:
Environment="DISPLAY=:0"
В зависимости от ошибок, которые вы можете увидеть в журнале вашего подразделения, вы захотите внести такие изменения.