LINUX.ORG.RU

непонятка с systemctl

 


0

1

Так работает:

[Unit]
Description=app
After=network.target

[Service]
Type=simple
EnvironmentFile=-/etc/default/app
ExecStart=/usr/bin/app
User=user
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

Так нет:
[Unit]
Description=app
After=network.target

[Service]
Type=simple
EnvironmentFile=-/etc/default/app
ExecStart=/usr/bin/app --options
User=user
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

В journalctl не нашел ответа.
Никаких ошибок не выдает.
Как правильно запускать «/usr/bin/app --options» в качестве сервиса?



Последнее исправление: gelius (всего исправлений: 3)

Ответ на: комментарий от deadNightTiger

UP.
Небольшое уточнение. Не работают оба предложенных выше варианта.
Рабочий юнит для запуска geth:

[Unit]
Description=Geth Ethereum node
After=network.target

[Service]
Type=simple
EnvironmentFile=-/etc/default/geth
ExecStart=/usr/bin/geth $GETH_ENABLE_RPC $GETH_CACHE $GETH_MAXPEERS
User=ethereumuser
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

Не понимаю как это работает. Если убрать «$GETH_ENABLE_RPC $GETH_CACHE $GETH_MAXPEERS», перестает запускаться.
Стоит добавить дополнительный параметр:
«ExecStart=/usr/bin/geth $GETH_ENABLE_RPC $GETH_CACHE $GETH_MAXPEERS --option»
перестает запускаться.
В journalctl ничего не пишет.

gelius
() автор топика
Ответ на: комментарий от gelius

Если убрать «$GETH_ENABLE_RPC $GETH_CACHE $GETH_MAXPEERS», перестает запускаться

Логично, без --rpc он ждёт какую-нибудь команду первым аргументом, а её нет.

Покажи /etc/default/geth и какую опцию ты хочешь добавить.

redgremlin ★★★★★
()
Ответ на: комментарий от redgremlin

/etc/default/geth нет. пока не понял как его писать.
«ExecStart=/usr/bin/geth $GETH_ENABLE_RPC $GETH_CACHE $GETH_MAXPEERS» работает.
«ExecStart=/usr/bin/geth --rpc --cache 128 --maxpeers 25» нет
'ExecStart=/usr/bin/geth --rpc --cache «128» --maxpeers «25»' нет
«ExecStart=/usr/bin/geth --rpc --cache --maxpeers» нет
Текущий нерабочий вариант:

[Unit]
Description=Geth Ethereum node
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/geth --rpc --cache "128" --maxpeers "25"
StandardOutput=syslog
StandardError=syslog
User=ethereumuser
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

Пишет в лог только:
«e3 systemd[1]: Started Geth Ethereum node.»

gelius
() автор топика
Ответ на: комментарий от gelius

geth.service

[Unit]
Description=Geth Ethereum node
After=network.target

[Service]
Type=simple
EnvironmentFile=-/etc/xrdp/geth
ExecStart=/usr/bin/geth $GETH_ENABLE_RPC $GETH_CACHE $GETH_MAXPEERS $GETH_DATADIR $GETH_NOUSB $GETH_FAST > /tmp/log1 2>&1
User=xrdp
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

/etc/xrdp/geth
GETH_ENABLE_RPC="--rpc"
GETH_CACHE="--cache 1024"
GETH_MAXPEERS="--maxpeers 25"
GETH_DATADIR="--datadir "/etc/xrdp/.ethereum""
GETH_NOUSB="--nousb"
GETH_FAST="--fast"

Не работает. Не выдает никаких ошибок. Ничего не пишет в «/tmp/log1». Ничего нет в journalctl.
Как заставить это сказать, что именно не нравится?

gelius
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.