Swapoff не работает с кроном

У меня есть этот сценарий тестирования:

root@PC:~# cat /usr/wsh/swap_reload.sh
# Swap clear
# 03.08.2017
swapoff -a ;
swapon /tmp/swap

root@PCA73:~# ls -l /usr/wsh/swap_reload.sh 
-rwxr-xr-x 1 root root 94 авг 10 16:24 /usr/wsh/swap_reload.sh

Также я добавил задачу крона (корневой крон):

* * * * * /usr/wsh/swap_reload.sh

Но когда я каждые 5 минут смотрю на free - это не изменяется (Но должен сбросить выделенную подкачку в течение каждой минуты, не так ли?

root@PCA73:~# free -h
                   total        used        free      shared  buff/cache     
available Mem:     31G          921M        3,9G         16G      26G 
13G Swap:           99M          47M         52M

Почему это не работает?

0
задан 15 August 2018 в 01:20

1 ответ

Ваш сценарий не имеет строки хижины

#!/bin/sh
...

Без той строки скрипт может только быть запущен от оболочки, и та оболочка предположит, что сценарий должен быть выполнен как сценарий оболочки. В основном порядок следующие:

  • оболочка пытается выполнить сценарий как двоичный файл, и ядро может или не может искать магическое число (с #! подсчет как магическое число)
  • если это не работает затем, оболочка выполняет сценарий как сценарий оболочки.

Вот почему это работает при вызове сценария от оболочки даже при том, что это испытывает недостаток в строке хижины.

Если Вы запускаете скрипт от крона, то нет никакой родительской оболочки, которая могла предположить, как выполнить сценарий. Для предотвращения этого добавьте строку хижины как так:

#!/bin/sh
# Swap clear
# 03.08.2017
swapoff -a ;
swapon /tmp/swap

Дальнейшее чтение:

1
ответ дан 28 October 2019 в 03:55

Другие вопросы по тегам:

Похожие вопросы: