Mysql
FreeBSD rc.d 腳本不會返回到正確的 shell
我有趣的問題是,當執行一些
rc.d
腳本時,它們實際上並沒有退回到根 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
因為它將進入內殼並掛起啟動,直到我可以在本地登錄並鍵入 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 請求輸出
更新 3 的答案!
@Steve Wills 讓我找到了正確的方向。最終原因是因為我從
.cshrc
root 帳戶的末尾呼叫了 bash shell。在通過腳本執行 su 時必須解析此文件rc.d
,並且添加的對另一個 shell 的引用解釋了為什麼它會坐下來等我exit
。刪除引用後,rc.d 腳本開始按預期工作。謝謝!!
你能分享你的 /etc/rc.conf 和/或 /etc/rc.conf.local 嗎?也許您設置的某些東西會導致這種情況。另外,嘗試將其作為“service mysql-server start”執行,看看是否會發生同樣的事情?
該
su(1)
命令更改為給定的使用者或以給定使用者的身份執行給定的命令。不看劇本,就無法知道發生了什麼。大概腳本只是沒有結束,或者一直在等待什麼。也許腳本壞了,也許它正在等待一些只需要很長時間(超過你的耐心)的東西。您應該使用一些包裝器來執行這些腳本嗎?(我的 Fedora 有system start some-service
這個)。