mirror of
https://github.com/mastodon/mastodon.git
synced 2024-12-23 18:02:59 +01:00
8af7f3b063
Always mark jemalloc needed if jemalloc is enabled by akihikodaki · Pull Request #4627 · ruby/ruby https://github.com/ruby/ruby/pull/4627 > Symbols exported by jemalloc is referred by the shared library but not > by the executables when building Ruby as a shared library with > jemalloc. It causes shared libraries such as the GNU C++ library > occasionally rely on the memory allocator provided by the standard C > library. Worse, the resolved symbols can later be replaced with > jemalloc, and jemalloc may see pointers from the standard C library, > which results in various failures. > e.g. https://github.com/tootsuite/mastodon/issues/15751 As a workaround, do not rely on jemalloc enablement of Ruby, and preload libjemalloc.so instead.
45 lines
1.1 KiB
Desktop File
45 lines
1.1 KiB
Desktop File
[Unit]
|
|
Description=mastodon-web
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=mastodon
|
|
WorkingDirectory=/home/mastodon/live
|
|
Environment="RAILS_ENV=production"
|
|
Environment="PORT=3000"
|
|
Environment="LD_PRELOAD=libjemalloc.so"
|
|
ExecStart=/home/mastodon/.rbenv/shims/bundle exec puma -C config/puma.rb
|
|
ExecReload=/bin/kill -SIGUSR1 $MAINPID
|
|
TimeoutSec=15
|
|
Restart=always
|
|
# Capabilities
|
|
CapabilityBoundingSet=
|
|
# Security
|
|
NoNewPrivileges=true
|
|
# Sandboxing
|
|
ProtectSystem=strict
|
|
PrivateTmp=true
|
|
PrivateDevices=true
|
|
PrivateUsers=true
|
|
ProtectHostname=true
|
|
ProtectKernelLogs=true
|
|
ProtectKernelModules=true
|
|
ProtectKernelTunables=true
|
|
ProtectControlGroups=true
|
|
RestrictAddressFamilies=AF_INET
|
|
RestrictAddressFamilies=AF_INET6
|
|
RestrictAddressFamilies=AF_NETLINK
|
|
RestrictAddressFamilies=AF_UNIX
|
|
RestrictNamespaces=true
|
|
LockPersonality=true
|
|
RestrictRealtime=true
|
|
RestrictSUIDSGID=true
|
|
PrivateMounts=true
|
|
ProtectClock=true
|
|
# System Call Filtering
|
|
SystemCallArchitectures=native
|
|
SystemCallFilter=~@clock @cpu-emulation @debug @keyring @module @mount @obsolete @raw-io @reboot @resources @setuid @swap
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|