轉載說明:如果您喜歡這篇文章并打算轉載它,請私信作者取得授權。感謝您喜愛本文,請文明轉載,謝謝。
問題背景:
在一臺不通外網的服務器上裝rabbitmq,然后在啟動的時候,遇到了報錯
“/usr/lib/rabbitmq/bin/rabbitmq-server: line 80: erl: command not found”的報錯,于是展開了破案。
[root@host1 ~]# rabbitmq-server
/usr/lib/rabbitmq/bin/rabbitmq-server: line 80: erl: command not found
[root@host1 ~]#
排查解決:
1. 手動執行erl命令,發現是成功的,說明之前裝的erl命令沒問題。
2. 查看環境變量配置,確認rabbitmq位置:
[root@host1 ~]# cat /etc/profile
# /etc/profile
...... #省略若干行export PATH=$PATH:/usr/local/erlang/binexport PATH=$PATH:/usr/lib/rabbitmq/bin
[root@host1 ~]#
3. 使用環境變量路徑中的文件啟動,是成功的:
[root@host1 ~]# sh /usr/lib/rabbitmq/bin/rabbitmq-server
.... #省略###### ## /var/log/rabbitmq/rabbit@host1-sasl.logStarting broker...completed with 0 plugins.
4. 確認rabbitmq-server命令執行的腳本的位置
[root@host1 ~]# which rabbitmq-server
/sbin/rabbitmq-server
[root@host1 ~]#
5. 比較兩個文檔,發現并不是同一個文件,/sbin/rabbitmq-server是之前有人裝了rabbitmq后沒有清理干凈的遺留文件。。。
于是把可以執行的/usr/lib/rabbitmq/bin/rabbitmq-server做軟個連接到/sbin下面去替代原來執行報錯的/sbin/rabbitmq-server文件:
[root@host1 sbin]# mv /sbin/rabbitmq-server /sbin/rabbitmq-server.bak
[root@host1 sbin]# ln -s /usr/lib/rabbitmq/bin/rabbitmq-server /sbin/rabbitmq-server
[root@host1 sbin]# ln -s /usr/lib/rabbitmq/bin/rabbitmq-env /sbin/rabbitmq-env
然后啟動rabbitmq,啟動成功。