-
Notifications
You must be signed in to change notification settings - Fork 0
/
zram-swap.service
37 lines (32 loc) · 1.2 KB
/
zram-swap.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[Unit]
Description=Compressed swap
DefaultDependencies=no
[Service]
Type=oneshot
RuntimeDirectory=zram-swap
ExecStartPre=/bin/sh -c -e -u '\
pages="$$(getconf _PHYS_PAGES)"; \
pagesize="$$(getconf PAGESIZE)"; \
echo z3fold >/sys/module/zswap/parameters/zpool; \
dev="$$(cat /sys/class/zram-control/hot_add)"; \
echo "$$dev" >''$RUNTIME_DIRECTORY/device''; \
echo "$$((pages * 3 / 2 * pagesize))" >"/sys/block/zram$${dev}/disksize"; \
echo "$$((pages * 3 / 4 * pagesize))" >"/sys/block/zram$${dev}/mem_limit"; \
mkswap "/dev/zram$${dev}"'
ExecStart=/bin/sh -c -e -u 'swapon --discard --priority 127 "/dev/zram$$(cat ''$RUNTIME_DIRECTORY/device'')"'
ExecStop=/bin/sh -c -e -u 'swapoff "/dev/zram$$(cat ''$RUNTIME_DIRECTORY/device'')"'
ExecStopPost=/bin/sh -c -e -u '\
test -s ''$RUNTIME_DIRECTORY/device'' || exit 0; \
dev="$$(cat ''$RUNTIME_DIRECTORY/device'')"; \
echo 1 >"/sys/block/zram$${dev}/reset"; \
echo "$$dev" >/sys/class/zram-control/hot_remove; \
rm -f -- ''$RUNTIME_DIRECTORY/device'''
RemainAfterExit=yes
ProtectSystem=strict
ProtectHome=yes
PrivateTmp=yes
PrivateNetwork=yes
CapabilityBoundingSet=CAP_DAC_OVERRIDE CAP_SYS_ADMIN
SystemCallFilter=@system-service @swap
[Install]
WantedBy=swap.target