1

Это ошибки при запуске из /etc/init.d

 sudo /etc/init.d/openconnect start
 * Starting open connect xxx.somedomain.com openconnect
start-stop-daemon: unable to start /usr/local/bin/op_connect.sh (Exec format error)
   ...fail!

Выполнение скрипта напрямую работает нормально

Скрипт является копией примера 'skeleton' в /etc/init.d (изменен только нижеследующий раздел)

#!/bin/sh
### BEGIN INIT INFO
# Provides:          skeleton
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Example initscript
# Description:       This file should be used to construct scripts to be
#                    placed in /etc/init.d.
### END INIT INFO

# Author: Foo Bar <foobar@baz.org>
#
# Please remove the "Author" lines above and replace them
# with your own name if you copy and modify this script.

# Do NOT "set -e"

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
DESC="open connect XXXXXXX"
NAME=op_connect.sh
DAEMON=/usr/local/bin/$NAME
DAEMON_ARGS="--options args"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Exit if

Сценарий ниже

#!/bin/sh
echo '<passwd>' | sudo openconnect --user=aname@somedomain.com --passwd-on-stdin https://xxxx.somedomain.com

1 ответ1

1

shebang (#!) в начале файлов находится фактически читаемая человеком версия магического числа, которая позволяет функции exec установить природу файла, то есть является ли файл исполняемым двоичным файлом или простым сценарием.

Следовательно, сообщение об ошибке Exec format error означает, что функция exec не смогла установить, является ли ваш скрипт op_connect.sh скриптом или двоичным файлом . Обычно это происходит потому, что shebang как-то написан с ошибкой, включая наличие непечатных символов. Для вас проще всего заново набрать сценарий и убедиться, что он исполняемый, что, если бы это было не так, объяснило бы загадку функции exec .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .