2013-10-17 76 views
0

今天,我在我的Raspberry Pi上安裝了Arch Linux,並開始安裝fhem。 fhem使用yaourt安裝後,我,我定製了fhem配置,寫了systemd *。服務文件,並開始使用該服務:Raspberry Pi fhem網頁界面無法訪問

sudo systemctl start fhem 
sudo systemctl enable fhem 

然後我檢查使用systemctl狀態fhem服務器狀態,這給了我以下:

fhem.service - FHEM Perl Server 
    Loaded: loaded (/etc/systemd/system/fhem.service; enabled) 
    Active: inactive (dead) since Thu 2013-10-17 15:20:42 CEST; 11min ago 
    Process: 480 ExecStart=/usr/bin/perl fhem.pl fhem.cfg (code=exited, status=0/SUCCESS) 
Main PID: 480 (code=exited, status=0/SUCCESS) 

Oct 17 15:20:41 alarmpi systemd[1]: Started FHEM Perl Server. 

因此,服務器似乎運行,所以我切換到我的臺式電腦,並試圖通過指向Firefox訪問fhem Web界面192.168.1.77:8083

Firefox can't establish a connection to the server at 192.168.1.77:8083 

所以我試着ssh到樹莓派,那工作得很好。有沒有人有一個想法,爲什麼我無法連接到fhem的Web界面?請在下面找到我的配置文件。

/etc/fhem/fhem.cfg

attr global logfile ./log/fhem-%Y-%m.log 
attr global modpath .     # where our FHEM directory is 
attr global statefile ./log/fhem.save # where to save the state of the devices 
attr global verbose 3     # "normal" verbosity (min 1, max 5) 

define telnetPort telnet 7072 global # our TCP/IP port 

define WEB FHEMWEB 8083 global 

define WEBphone FHEMWEB 8084 global 
attr WEBphone stylesheetPrefix smallscreen 

define WEBtablet FHEMWEB 8085 global 
attr WEBtablet stylesheetPrefix touchpad 

# Fake FileLog entry, to access the fhem log from FHEMWEB 
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog 

define autocreate autocreate 
attr autocreate autosave 
attr autocreate device_room %TYPE 
attr autocreate filelog ./log/%NAME-%Y.log 
attr autocreate weblink 
attr autocreate weblink_room Plots 

# Disable this to avoid looking for new USB devices on startup 
define initialUsbCheck notify global:INITIALIZED usb create 

/etc/systemd/system/fhem.service

[Unit] 
Description=FHEM Perl Server 
After=syslog.target network.target 

[Service] 
User=fhem 
WorkingDirectory=/opt/fhem 
ExecStart=/usr/bin/perl fhem.pl fhem.cfg 
Type=simple 

[Install] 
WantedBy=multi-user.target 

/etc/iptables/iptables.rules

*filter 
:INPUT ACCEPT [0:0] 
:FORWARD ACCEPT [0:0] 
:OUTPUT ACCEPT [0:0] 
-A INPUT -p udp -m udp --dport 123 -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT 
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 
-A OUTPUT -p udp -m udp --sport 123 -j ACCEPT 
COMMIT 
+0

首先,該服務未運行 **活動:自從2013年4月17日15:20:42 CEST以後不活動(死了) 11分鐘前** **程序:480 ExecStart =/usr/bin/perl fhem.pl fhem.cfg(code = exited,status = 0/SUCCESS)** 如果有'_log-file_' fhem' 然後看它的退出原因。 也許'fhem'是分叉的?但是'systemd'應該抓住它的PID。 –

+0

日誌文件告訴我它加載配置文件* fhem.cfg *。這不再是提示。 – Phidelux

回答

1

我能夠做你正在嘗試使用下面的systemd服務文件達到什麼樣的(主要修改beeing「類型=分叉」):

[Unit]                         
Description=FHEM Perl Server                   
After=syslog.target network.target                  

[Service]                        
Type=forking                           
User=fhem                        
WorkingDirectory=/opt/fhem                    
ExecStart=/usr/bin/perl fhem.pl fhem.cfg 

而且,你似乎可以用一個「fhem」用戶,請確保此用戶對所需文件具有足夠的權限(我必須至少授予它對日誌目錄的寫入權限)

僅供參考在FUR中有一個包,但即使它認爲它缺少此服務文件。