curl удаленно или локально в этом примере печатает.txt локально
, если данные, как указано в вопросе, представляют собой :строку -на -строку и не включают строку «в строке» в первом -столбце -данных -.
curl file:///home/$USER/Public/input.txt | grep -o 'on line.*' > output.txt
или
curl https://yoursite.com/Public/input.txt | grep -o 'on line.*' > output.txt
это запишет ваш текущий output.txt и не будет знать о папке только для чтения -
Благодаря DrTron в этом сообщении я нашел правильный способ решить эту проблему, а именно добавить пользователя в группу, имеющую разрешения на USB-устройства.
на случай, если кто-то еще заинтересуется, я добавлю своего пользователя 'гал' в группу дозвона с помощью
sudo adduser gal dialout
Тогда сервису systemd нужно позаботиться только о zigbee2mqtt, поэтому я изменил сервис на:
$ systemctl cat zigbee2mqtt.service
# /etc/systemd/system/zigbee2mqtt.service
[Unit]
Description=zigbee2mqtt
After=network.target
[Service]
ExecStart=/usr/local/bin/npm start
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
StandardError=inherit
Restart=always
User=gal
[Install]
WantedBy=multi-user.target
Наконец, я вышел из системы, снова вошел в систему и запустил службу с новой конфигурацией.
$ systemctl daemon-reload
$ systemctl start zigbee2mqtt.service