我有趣的问题是,在运行一些rc.d脚本时,他们实际上并没有退回到root shell,而是把它留在一个中间shell中,就像他们应该运行的用户一样。
副作用是所需的服务实际上并没有启动,直到我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启用了服务,因为它将进入内部shell并挂起启动,直到我可以在本地login并键入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 [email protected]:/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与答案!
@Steve Wills让我看着正确的方向。 最终的原因是因为我从.cshrc的末尾调用了root帐户的bash shell。 当通过rc.d脚本运行su时,该文件必须被parsing,而添加到另一个shell的引用解释了为什么它会坐下来等待我exit 。 删除引用后,rc.d脚本开始按预期工作。
谢谢!!
你可以分享你的/etc/rc.conf和/或/etc/rc.conf.local吗? 也许在那里有一些东西,你已经设置了这个。 另外,尝试运行它作为“服务MySQL服务器启动”,看看是否发生同样的事情?
su(1)命令变成给定的用户或者运行给定用户的命令。 不看剧本,就不知道发生了什么。 据推测脚本不会结束,或者一直在等待着什么。 也许脚本被打破了,也许它正在等待一些需要很长时间的事情(比你的耐心还要多)。 是否有一些包装你应该用来运行这些脚本? (我的Fedora system start some-service为此system start some-service )。