В OpenWrt Linux я поместил скрипт запуска в папку /etc/init.d и включил его. Сценарий в порядке и выглядит следующим образом:
#!/bin/sh /etc/rc.common
# Automatically place an "S91canpy" symlink in /etc/rc.d/ once we enable it
# This means it will start right after /etc/rc.d/90openvpn
START=91
# This is what will run when this service starts
start() {
# Run the process in the background (&), and direct errors to a log file
sh /user/start_everything.sh >/var/log/init_canpy.log 2>&1 &
}
# This is what will run when the service stops
stop() {
echo "no stop function set up yet"
}
# This is what will run when the service restarts
restart() {
# Run the process in the background (&), and direct errors to a log file
sh /user/start_everything.sh >/var/log/init_canpy.log 2>&1 &
}
Сценарий /user/start_everything.sh, который он вызывает, выглядит следующим образом:
#!/bin/sh
# Run the "find_config_data.py" Python program
/data/venv/bin/python3.6 /user/canpy/find_config_data.py
Проблема в том, что / data включенаотдельный раздел жесткого диска, поэтому init.d не может найти его. Я получаю следующее сообщение об ошибке:
line 4: /data/venv/bin/python3.6: not found
У моего основного раздела осталось только 20 МБ свободного места, поэтому я должен установить Python 3.6 и его библиотеки на раздел / data, который имеет 2,5 ГБпространство.
Как я могу заставить init.d найти мой двоичный файл Python в /data/venv/bin/python3.6? Я обязательно должен запускать эту программу Python каждый раз, когда Linux загружается / перезагружается. СПАСИБО !!
Ниже приведены настройки моего раздела:
root@FATBOX:/tmp/log# df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 476.2M 456.0M 20.2M 96% /
devtmpfs 512.0K 0 512.0K 0% /dev
tmpfs 247.7M 116.0K 247.6M 0% /tmp
tmpfs 512.0K 0 512.0K 0% /dev
/dev/mmcblk0p3 2.7G 50.2M 2.5G 2% /data