[sisyphus] systemd: path-based activation

Eugene Prokopiev enp на altlinux.org
Ср Сен 16 10:17:11 MSK 2015


Здравствуйте!

В процессе отладки altlinux-openresolv.* понял, что у меня вообще не
работает path-based activation либо я делаю что-то не так:

Вот простейший пример. Создаем файлы:

# cat file.path
[Unit]
Description=My path
RequiresMountsFor=/root
Before=paths.target shutdown.target
[Path]
PathChanged=/root/file.0
[Install]
WantedBy=multi-user.target

# cat file.service
[Unit]
Description=My service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/sh -c 'cat /root/file.0 > /root/file.1'
[Install]
WantedBy=multi-user.target

Перечитываем, запускаем, смотрим состояние:

[root на enp system]# systemctl daemon-reload
[root на enp system]# systemctl start file.path
[root на enp system]# systemctl status file.path
● file.path - My path
   Loaded: loaded (/etc/systemd/system/file.path; disabled; vendor
preset: disabled)
   Active: active (waiting) since Ср 2015-09-16 09:51:47 MSK; 4s ago
сен 16 09:51:47 enp.donpac.ru systemd[1]: Started My path.
[root на enp system]# systemctl status file.service
● file.service - My service
   Loaded: loaded (/etc/systemd/system/file.service; disabled; vendor
preset: disabled)
   Active: inactive (dead)

Теперь пишем в один файл и ожидаем увидеть результаты во втором:

# echo one > /root/file.0
# systemctl status file.service
● file.service - My service
   Loaded: loaded (/etc/systemd/system/file.service; disabled; vendor
preset: disabled)
   Active: active (exited) since Ср 2015-09-16 09:52:18 MSK; 9s ago
  Process: 1426 ExecStart=/bin/sh -c cat /root/file.0 > /root/file.1
(code=exited, status=0/SUCCESS)
 Main PID: 1426 (code=exited, status=0/SUCCESS)
сен 16 09:52:18 enp.donpac.ru systemd[1]: Starting My service...
сен 16 09:52:18 enp.donpac.ru systemd[1]: Started My service.
сен 16 09:52:18 enp.donpac.ru systemd[1]: Started My service.
сен 16 09:52:25 enp.donpac.ru systemd[1]: Started My service.
# cat /root/file.1
# echo two > /root/file.0
# systemctl status file.service
● file.service - My service
   Loaded: loaded (/etc/systemd/system/file.service; disabled; vendor
preset: disabled)
   Active: active (exited) since Ср 2015-09-16 09:52:18 MSK; 1min 54s ago
  Process: 1426 ExecStart=/bin/sh -c cat /root/file.0 > /root/file.1
(code=exited, status=0/SUCCESS)
 Main PID: 1426 (code=exited, status=0/SUCCESS)
сен 16 09:52:18 enp.donpac.ru systemd[1]: Starting My service...
сен 16 09:52:18 enp.donpac.ru systemd[1]: Started My service.
сен 16 09:52:18 enp.donpac.ru systemd[1]: Started My service.
сен 16 09:52:25 enp.donpac.ru systemd[1]: Started My service.
сен 16 09:54:11 enp.donpac.ru systemd[1]: Started My service.
# cat /root/file.1
#

Вручную разумеется все прекрасно:

# cat /root/file.0 > /root/file.1
# cat /root/file.1
two
#

Может я что-то делаю не так?

-- 
WBR,
Eugene Prokopiev


Подробная информация о списке рассылки Sisyphus