Назад | Перейти на главную страницу

Сценарии FreeBSD rc.d не возвращаются в надлежащую оболочку

Моя интересная проблема в том, что при запуске некоторых rc.d сценарии, которые они фактически не возвращаются в корневую оболочку, но оставляют меня в промежуточной оболочке в качестве пользователя, от имени которого они должны работать.

Побочным эффектом является то, что желаемая служба фактически не запускается, пока я exit из этой внутренней оболочки. Увидеть ниже:

[root@zeb2 /usr/local/etc/rc.d]# ./mysql-server  start
Starting mysql.
[mysql@zeb2 /usr/local/etc/rc.d]$ ps ax |grep mysql
 3352   0  S        0:00.01 /bin/sh ./mysql-server start
 3357   0  S        0:00.01 su -m mysql -c sh -c "/usr/sbin/daemon  -c -f /usr/local/bin/mysqld_safe --defaults-extra-file=/var/db/mysq
 3358   0  S        0:00.01 _su -m -c sh -c "/usr/sbin/daemon  -c -f /usr/local/bin/mysqld_safe --defaults-extra-file=/var/db/mysql/my.
 3364   0  R+       0:00.00 grep mysql
[mysql@zeb2 /usr/local/etc/rc.d]$ exit
exit
[root@zeb2 /usr/local/etc/rc.d]# ps ax |grep mysql
 3366  ??  Ss       0:00.02 /bin/sh /usr/local/bin/mysqld_safe --defaults-extra-file=/var/db/mysql/my.cnf --user=mysql --datadir=/var/d
 3636  ??  S        0:00.13 [mysqld]
 3639   0  S+       0:00.00 grep mysql
[root@zebes2 /usr/local/etc/rc.d]#

Это похоже на некоторую странность с su команда, вот в чем проблема. Это происходит не на всех установленных мной портах, но на обоих. MySQL и SABNzbd. Это также вызывает проблему, если серверу необходимо перезагрузить, и я оставил службу включенной в rc.conf поскольку он войдет во внутреннюю оболочку и зависнет, пока я не смогу войти в систему локально и набрать exit.

[root@zeb2 /usr/local/etc/rc.d]# uname -a
FreeBSD xxx.xxx.xxx.net 9.0-RELEASE-p3 FreeBSD 9.0-RELEASE-p3 #0: Tue Jun 12 01:47:53 UTC 2012     root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  i386

Обновлено с помощью вывода rc.conf ниже

[root@zeb2 /usr/bin]# cat /etc/rc.conf |grep -v '#'
syslogd_flags="-a dd-wrt.om.cox.net:* -vv"
sshd_enable="YES"
ifconfig_em0="inet 192.168.1.3  netmask 255.255.255.0"
defaultrouter="192.168.1.1"
hostname="zeb2.om.cox.net"
webmin_enable="YES"
samba_enable="YES"
uuidd_enable="YES"
denyhosts_enable="YES"
inetd_enable="YES"
mysql_enable="YES"

Обновление 2 с запрошенными выходными данными

Вывод sh -x mysql-server start

Список пакетов

Содержимое mysql-server

Обновление 3 с ответом!

@ Стив Уиллс заставил меня смотреть в правильном направлении. Конечная причина заключалась в том, что я вызывал оболочку bash с конца .cshrc для учетной записи root. Этот файл должен быть проанализирован при запуске su через rc.d сценарии и добавленная ссылка на другую оболочку объясняет, почему она будет ждать, пока я exit. После удаления ссылки сценарии rc.d начали работать должным образом.

Спасибо!!

Можете ли вы поделиться своими /etc/rc.conf и / или /etc/rc.conf.local? Возможно, вы установили что-то, что вызывает это. Кроме того, попробуйте запустить его как «запуск службы mysql-server» и посмотрите, произойдет ли то же самое?

В su(1) команда превращается в заданного пользователя или запускает команду, заданную как заданный пользователь. Не глядя на сценарий, невозможно узнать, что происходит. По-видимому, сценарий просто не заканчивается или продолжает чего-то ждать. Возможно, скрипт не работает, возможно, он ждет чего-то, что занимает много времени (больше, чем ваше терпение). Есть ли какая-нибудь оболочка, которую вы должны использовать для запуска этих скриптов? (В моей Fedora system start some-service для этого).