LINUX.ORG.RU

systemd и логирование

 


0

2

Постоянно один косяк. Пишу юнит и он не стартует.
Никаких ошибок в консоли, пусто в journalctl -u юнит.service, так тоже ничего: " > /tmp/log 2>&1".
Из консоли с выбранными параметрами от нужного пользователя все работает нормально.
Мне нужно знать, где именно проблема. Как это решить?


Что значит «не стартует»? После ручного старта?

Никаких ошибок в консоли

Никаких ошибок в консоли после чего? Полностью список действий.

пусто в journalctl -u юнит.service

systemctl status юнит.service

так тоже ничего: " > /tmp/log 2>&1"

Это, надо полагать, ты указываешь в ExecStart=? И не будет работать, потому что systemd — это не шелл, и строки в ExecStart= обрабатываются и исполняются systemd напрямую.

Мне нужно знать, где именно проблема. Как это решить?

Нам тоже. Телепатов нет.

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

Что значит «не стартует»? После ручного старта?
Никаких ошибок в консоли после чего? Полностью список действий.

«systemctl start имя_пакета»
Есть другие варианты?

systemctl status юнит.service

systemctl status unit
* unit.service - unit
   Loaded: loaded (/etc/systemd/system/unit.service; disabled; vendor preset: enabled)
   Active: active (exited) (Result: exit-code) since Sun 2018-01-14 22:45:28 CET; 1h 20min ago
 Main PID: 9977 (code=exited, status=1/FAILURE)
   CGroup: /system.slice/unit.service

Это, надо полагать, ты указываешь в ExecStart=? И не будет работать, потому что systemd — это не шелл, и строки в ExecStart= обрабатываются и исполняются systemd напрямую.

«ExecStart=/usr/bin/geth > /tmp/log 2>&1»

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

Есть другие варианты?

Ну, ты мог написать юнит и ожидать, что он начнёт (авто)запускаться сам без какого-либо вмешательства с твоей стороны. Люди иногда так думают.

systemctl status юнит.service

А всё остальное? В выводе больше ничего не было?

«ExecStart=/usr/bin/geth > /tmp/log 2>&1»

Так не будет работать.

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

А всё остальное? В выводе больше ничего не было?

По этому юниту пусто.
Похоже журналирование вообще отключено.
«journalctl -n 50» выдало такое:

Jan 09 23:03:12 e3 sshd[8249]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=неизвестный_ип  user=root
Jan 09 23:03:25 e3 sshd[8251]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=неизвестный_ип  user=root
Jan 09 23:03:27 e3 sshd[8251]: Failed password for root from неизвестный_ип port 16028 ssh2
Jan 09 23:03:29 e3 sshd[8251]: Failed password for root from неизвестный_ип port 16028 ssh2
Jan 09 23:03:31 e3 sshd[8251]: Failed password for root from неизвестный_ип port 16028 ssh2
Jan 09 23:03:32 e3 sshd[8251]: Received disconnect from неизвестный_ип port 16028:11:  [preauth]
Jan 09 23:03:32 e3 sshd[8251]: Disconnected from неизвестный_ип port 16028 [preauth]
А на сервере уже «Mon Jan 15»

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

Но пока не нашел почему отключено и как включить. journald.conf:

[Journal]
#Storage=auto
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitInterval=30s
#RateLimitBurst=1000
#SystemMaxUse=
#SystemKeepFree=
#SystemMaxFileSize=
#SystemMaxFiles=100
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#RuntimeMaxFiles=100
#MaxRetentionSec=
#MaxFileSec=1month
#ForwardToSyslog=yes
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg

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

В общем конфиг по умолчанию не катит.

Storage=persistent
MaxRetentionSec=3h
SystemMaxFiles=1000
частично решило проблему. Старые логи начали удаляться, новые записываться.
Но все равно, я вижу только «e3 systemd[1]: Started Unit.»
А хочу логировать все, что отдает /usr/bin/unit.

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

Конфиг катит, нужно просто создать /var/log/journal/.

А хочу логировать все, что отдает /usr/bin/unit.

Убери перенаправление из ExecStart.

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

Перенаправления в ExecStart уже нет.
Юнит:
cat /etc/systemd/system/testnet.service


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

[Service]
Type=simple
EnvironmentFile=-/home/testnet/geth.config1
ExecStart=/usr/bin/geth $GETH_ENABLE_RPC $GETH_CACHE $GETH_MAXPEERS $GETH_DATADIR $GETH_NOUSB $GETH_FAST $GETH_TESTNET
User=testnet
RemainAfterExit=true

[Install]
WantedBy=multi-user.target
cat /home/testnet/geth.config1

GETH_ENABLE_RPC="--rpc"
GETH_CACHE="--cache 1024"
GETH_MAXPEERS="--maxpeers 25"
GETH_DATADIR="--datadir "/home/testnet/.ethereum""
GETH_NOUSB="--nousb"
GETH_FAST="--fast"
GETH_TESTNET="--testnet"
Нужен именно лог. То, что отдает /usr/bin/geth.
Эта хрень проработала пару суток, потом упала и больше не стартует.
Из консоли без проблем, а юнит больше не запускается.

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