LINUX.ORG.RU

[Решено] Systemd не автозапускает

 , ,


0

1

[Решено] Systemd не автозапускает (комментарий) Опечатка была.

~$ sudo systemctl status zramrun.service
● zramrun.service - zramrun
     Loaded: loaded (/etc/systemd/system/zramrun.service; enabled; vendor preset: enabled)
     Active: inactive (dead)

~$ sudo systemctl start zramrun.service
~$ sudo systemctl status zramrun.service
● zramrun.service - zramrun
     Loaded: loaded (/etc/systemd/system/zramrun.service; enabled; vendor preset: enabled)
     Active: active (exited) since Tue 2021-08-24 16:44:23 +04; 2s ago
    Process: 2326 ExecStart=/usr/local/bin/zRAM (code=exited, status=0/SUCCESS)
   Main PID: 2326 (code=exited, status=0/SUCCESS)

авг 24 16:44:23  systemd[1]: Starting zramrun...
авг 24 16:44:23  zRAM[2332]: Setting up swapspace version 1, size = 16 GiB (17179865088 bytes)
авг 24 16:44:23  zRAM[2332]: LABEL=zram0, UUID=2cca3433-2c78-4942-b9ec-395d3e407995
авг 24 16:44:23  systemd[1]: Finished zramrun.

Или в 20.04 zram-tools какой-то обгрызанный, или он вообще такой... Короче, решил его выкинуть, а zram сделать руками.

#!/bin/bash
modprobe zram
echo zstd > /sys/block/zram0/comp_algorithm
echo 16G > /sys/block/zram0/disksize
mkswap --label zram0 /dev/zram0
swapon --priority 100 /dev/zram0

Чтобы оно отрабатывало при загрузке, сделал так ↓

[Unit]
Description=zramrun

[Service]
ExecStart=zRAM
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multiuser.target

А оно не хочет. Руками стартует, при загрузке - фиг.

★★★

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

Для корректного отображения вашего сообщения нужно добавить по три апостофа (вот так: ```) строкой выше и строкой ниже вставленного вами кода или вывода терминала.

На данном сайте напоминание об этом отображается под каждой формой ввода сообщения. Вот так:

Внимание: прочитайте описание разметки Markdown или LORCODE

Papant
()

ExecStart=zRAM

Используй абсолютный путь.

Ещё у тебя нет ни одной проверки на существование /dev/zram0. Если уж пишешь костыль, то пиши его до конца.

Или в 20.04 zram-tools какой-то обгрызанный, или он вообще такой

Или дело не в бабине.

Radjah ★★★★★
()
Последнее исправление: Radjah (всего исправлений: 1)

Права на скрипт sudo chmod 755

Затем обновить конфигурацию и добавить в автозагрузку Linux

sudo systemctl daemon-reload
sudo systemctl enable zramrun.service

для каждого скрипта, который вы собираетесь запускать должны быть правильно выставлены права, а именно нужно установить флаг выполнения. Для этого используйте команду chmod:

sudo chmod u+x /usr/local/bin/script.sh

ps: ну и собственно :

[Unit]
Description=My Script Service
After=multi-user.target

[Service]
Type=idle
ExecStart=/usr/bin/local/script.sh

[Install]
WantedBy=multi-user.target
Clockwork ★★★★★
()
Последнее исправление: Clockwork (всего исправлений: 2)

ExecStart=zRAM

В systemd принципиально используются полные пути до бинарей

Active: active (exited) since Tue 2021-08-24 16:44:23 +04; 2s ago

впрочем, судя по всему, скрипт то был запущен, значит в ExecStart все ок :)

WantedBy=multiuser.target

multi-user.target

vasily_pupkin ★★★★★
()
Последнее исправление: vasily_pupkin (всего исправлений: 2)
Ответ на: комментарий от vasily_pupkin

Спасибо! Это↓

WantedBy=multiuser.target

multi-user.target

А за себя мне вот сейчас действительно стыдно.

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

Или в 20.04 zram-tools какой-то обгрызанный, или он вообще такой

Или дело не в бабине.

Может и так. Как поменять алгоритм сжатия, используя zram-tools? ALGO в конфиге не работает.

Однако, когда идет свопинг в zram, с zstd процесс kswapd0 так же полностью занимает одно «ядро», как и с lzo-rle. Поиграюсь еще с алгоритмами и, возможно, снесу zram и верну swap на разделе ssd.

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

Спасибо. А что, раз уж я тупую опечатку сделал, мог и chmod u+x забыть.:) Но в этот раз не забыл.

Dementy ★★★
() автор топика
Ответ на: комментарий от Dementy
/sbin/zramctl --help

Использование:
 zramctl [options] <device>
 zramctl -r <device> [...]
 zramctl [options] -f | <device> -s <size>

Set up and control zram devices.

Параметры:
 -a, --algorithm lzo|lz4|lz4hc|deflate|842   compression algorithm to use
 -b, --bytes               print sizes in bytes rather than in human readable format
 -f, --find                find a free device
 -n, --noheadings          don't print headings
 -o, --output <list>       columns to use for status output
     --output-all          output all columns
     --raw                 use raw status output format
 -r, --reset               reset all specified devices
 -s, --size <size>         device size
 -t, --streams <number>    number of compression streams

# zramctl -s 1G -t 4 -a zstd -f
$ /sbin/zramctl
NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram0 zstd            1G   4K   58B    4K       4 [SWAP]

Не забудь только модуль zstd загрузить перед этим.

Radjah ★★★★★
()
Последнее исправление: Radjah (всего исправлений: 2)
Ответ на: комментарий от Radjah

Ну, можно и так. Можно и echo ляля > /sys/block/zram0/comp_algorithm, как я сделал.

Но разговор-то был про zram-tools.

В Убунтах давненько предлагается просто apt install zram-tools и радоваться. Если радостно, но не до апофеоза, предлагается ковырять в /etc/default/zramswap. А там сейчас (по крайней мере, в 20.04) алгоритм не поменяешь.

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

Посмотрел я их скрипт.

А я даже и не смотрел. Квалификации просто нет. Но, как для простого юзера, всё равно

Жуть

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