diff --git a/setup-scripts/limits.conf b/setup-scripts/limits.conf new file mode 100644 index 00000000..bc632dfe --- /dev/null +++ b/setup-scripts/limits.conf @@ -0,0 +1,58 @@ +# /etc/security/limits.conf +# +#Each line describes a limit for a user in the form: +# +# +# +#Where: +# can be: +# - a user name +# - a group name, with @group syntax +# - the wildcard *, for default entry +# - the wildcard %, can be also used with %group syntax, +# for maxlogin limit +# - NOTE: group and wildcard limits are not applied to root. +# To apply a limit to the root user, must be +# the literal username root. +# +# can have the two values: +# - "soft" for enforcing the soft limits +# - "hard" for enforcing hard limits +# +# can be one of the following: +# - core - limits the core file size (KB) +# - data - max data size (KB) +# - fsize - maximum filesize (KB) +# - memlock - max locked-in-memory address space (KB) +# - nofile - max number of open file descriptors +# - rss - max resident set size (KB) +# - stack - max stack size (KB) +# - cpu - max CPU time (MIN) +# - nproc - max number of processes +# - as - address space limit (KB) +# - maxlogins - max number of logins for this user +# - maxsyslogins - max number of logins on the system +# - priority - the priority to run user process with +# - locks - max number of file locks the user can hold +# - sigpending - max number of pending signals +# - msgqueue - max memory used by POSIX message queues (bytes) +# - nice - max nice priority allowed to raise to values: [-20, 19] +# - rtprio - max realtime priority +# - chroot - change root to directory (Debian-specific) +# +# +# + +#* soft core 0 +#root hard core 100000 +#* hard rss 10000 +#@student hard nproc 20 +#@faculty soft nproc 20 +#@faculty hard nproc 50 +#ftp hard nproc 0 +#ftp - chroot /ftp +#@student - maxlogins 4 + +user soft nofile 25000 +# End of file +~ diff --git a/setup-scripts/setup.sh b/setup-scripts/setup.sh index 19ae9426..fabb4e1a 100755 --- a/setup-scripts/setup.sh +++ b/setup-scripts/setup.sh @@ -43,17 +43,17 @@ sudo ufw allow ssh sudo ufw allow 'Nginx Full' sudo ufw allow 'Nginx HTTP' -# Install Go 1.13.7. -wget -c https://dl.google.com/go/go1.13.7.linux-amd64.tar.gz -sudo tar -C /usr/local -xzf go1.13.7.linux-amd64.tar.gz +# Install Go 1.13.11. +wget -c https://dl.google.com/go/go1.13.11.linux-amd64.tar.gz +sudo tar -C /usr/local -xzf go1.13.11.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin -rm go1.13.7.linux-amd64.tar.gz +rm go1.13.11.linux-amd64.tar.gz # Sanity check that will pass if go was installed correctly. go version # Install Sia -git clone -b v1.4.4 https://gitlab.com/NebulousLabs/Sia ~/Sia +git clone -b v1.4.8 https://gitlab.com/NebulousLabs/Sia ~/Sia make --directory ~/Sia # Setup systemd files @@ -71,6 +71,9 @@ sudo mkdir -p /var/log/journal sudo cp journald.conf /etc/systemd/journald.conf sudo systemctl restart systemd-journald +# Set up file limits. +sudo cp limits.conf /etc/security/limits.conf + # Setup periodical /tmp cleanup so we don't run out of disk space # - deletes anything older than 10 days from /tmp, crontab is set to run it every day at midnight (sudo crontab -l 2>/dev/null; echo "0 0 * * * find /tmp -type f -atime +10 -delete >/dev/null 2>&1") | sudo crontab - diff --git a/setup-scripts/siad-upload.service b/setup-scripts/siad-upload.service index 4516a3ad..950ab677 100644 --- a/setup-scripts/siad-upload.service +++ b/setup-scripts/siad-upload.service @@ -9,6 +9,7 @@ ExecStart=/home/user/go/bin/siad --api-addr "localhost:9970" --rpc-addr ":9971" ExecStop=/home/user/go/bin/siac --addr "localhost:9970" stop Restart=on-failure SyslogIdentifier=siad-upload +LimitNOFILE=10000 [Install] WantedBy=default.target diff --git a/setup-scripts/siad.service b/setup-scripts/siad.service index 83207c79..2aaa75ab 100644 --- a/setup-scripts/siad.service +++ b/setup-scripts/siad.service @@ -9,6 +9,7 @@ ExecStart=/home/user/go/bin/siad ExecStop=/home/user/go/bin/siac stop Restart=on-failure SyslogIdentifier=siad +LimitNOFILE=10000 [Install] WantedBy=default.target