發表文章

目前顯示的是 1月, 2016的文章

raspberry pi (linux pi) 如何設定開機自動執行 sell script 呢?

要在 /etc/init.d資料下撰寫一個shell script檔,去執行你要執行的指令 我用shell script去啟動另一個shell script,並且執行java程式,以達到開機時,啟動程式。 假設我在/etc/init.d下,擺放run_start.sh run_start.sh 的檔案內容如下 =============================== #! /bin/sh sh /var/java/checker.sh =============================== 而檔案擺好之後, 要去下指令,才能夠奏效。 則需要下 update-rc.d run_start.sh defaults 99 1 而網路上文章,將defaults寫成為default,或忘記defaults 後面的 99 1 如果出錯了就會出現以下的文字內容 usage: update-rc.d [-n] [-f] <basename> remove update-rc.d [-n] <basename> defaults [NN | SS KK] update-rc.d [-n] <basename> start|stop NN runlvl [runlvl] [...] . update-rc.d [-n] <basename> disable|enable [S|2|3|4|5] -n: not really -f: force 可見,他已經教你如何去下指令了。 而因為之前可能下錯,而導致不能再下指令的可能性。 所以先移除原本的,再重新下指令 執行 update-rc.d -f run_start.sh remove 而重開機測試,結果還是沒執行,為什麼 網路文章又教錯你的另一件事,就是剛剛那個run_start.sh,必須設為執行檔,才有效果。 若為執行檔,他的檔案會顯示為綠色,若為捷徑,則為藍色。 因此,將run_start.sh ,設為可執行檔 則下以下指令 sudo chmod +x /etc/init.d/run_start.sh* 接著重開機做測試 使用 sudo reboot 開機後,登入,檢...

安裝 raspberry pi (linux pi)作業系統

圖片
手邊這版 raspberry pi 因為工作的關係需要做一些研究,於是從 0 開始學習如何安裝 linux pi 系統,也參考其他網誌的安裝教學,本款以 raspberry pi b+ 為範例,http://blogger.gtwang.org/2014/12/raspberry-pi-b-plus-noobs-linux-installation.html,實做的過程中遇到許多問題,包含找不到對應的 b+ 版,官網只找到 raspberry pi 2 的 linux pi 版,好吧,將錯就錯,首先到官網下載 noobs (https://www.raspberrypi.org/downloads/),有分完整版和線上安裝版,抓完整版 zip 解壓後,無法完全複製到 sd 卡上,於是發現到又少了一步就是要利用 sd formatter 軟體來格式化,之後我就安脆下載線上版來安裝,我選 raspbian 版,聽說是樹梅派官方的 linux 版本,安裝過程中等待很久,可能是該版本是給 raspberry pi 2 使用的關係,安裝完成後開機也較慢,且預設不是文字介面模式而是直接進入到圖形介面模式,記得上一版 linux pi 預設式文字模式,若要進入到圖形介面模式則要輸入 startx 指令,總之裝好後,進入到系統中,因為這小電腦仍然是要給人使用,於是免不了的要先中文化,參考葉難網誌 http://blogger.gtwang.org/2014/12/raspberry-pi-chinese-input-method.html 樹梅派帳號 / 密碼預設為 pi / raspberry 當然你也可以改密碼 passwd pi root 密碼設定(一定要的拉) sudo passwd root 先安裝中文字型 apt-get install ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy 變更中文語系 dpkg-reconfigure locales 安裝 pycurl error 解決方式 apt-get install libcurl4-gnutls-dev apt-get install arm-linux-gnueabihf-gcc  apt-get install pytho...

python curl 控制設備

先前做出的 php 版的 curl 控制設備只能使用網頁的模式,這次改成用 python ,原因很簡單可以利用 command 來發送命令,對於系統管理而言我們會需要許多指令來整合運作,程式如下 on.py # -*- coding: utf-8 -*- import pycurl #from urllib import urlencode github_url = '192.168.16.206/rpc_call' postfields = "call=function&name=#0,0,0,0,0,0,0,system,projector,write,on&actfunc=custom_function_call_function" c = pycurl.Curl() c.setopt(pycurl.CONNECTTIMEOUT, 2) c.setopt(pycurl.URL, github_url) c.setopt(pycurl.POST, 1) c.setopt(pycurl.POSTFIELDS,postfields) c.perform() print postfields off.py # -*- coding: utf-8 -*- import pycurl #from urllib import urlencode github_url = '192.168.16.206/rpc_call' postfields = "call=function&name=#0,0,0,0,0,0,0,system,projector,write,standby&actfunc=custom_function_call_function" c = pycurl.Curl() c.setopt(pycurl.CONNECTTIMEOUT, 2) c.setopt(pycurl.URL, github_url) c.setopt(pycurl.POST, 1) c.setopt(pycurl.POSTFIELDS,postfields) c.perform() print postfields

PHP 教學 - 利用 curl 對設備進行開關機

圖片
工作上遇到一些控制設備的需求,需要將投影機的 web 開關機功能整合到自行開發的 web 控制系統中,初步只能看到前端的網頁 html 部分 <tr> <td class="ItemName">Power On:</td> <td colspan=2 width=250px><input type="button" id="#0,0,0,0,0,0,0,system,projector,write,on" value="Do it" class="selection-input" onclick="onButton('#0,0,0,0,0,0,0,system,projector,write,on','custom_function_call_function')"> </input></td> </tr> <tr> <td class="ItemName">Power Off:</td> <td colspan=2 width=250px><input type="button" id="#0,0,0,0,0,0,0,system,projector,write,standby" value="Do it" class="selection-input" onclick="onButton('#0,0,0,0,0,0,0,system,projector,write,standby','custom_function_call_function')"> </input></td> </tr> javascript 部分 function makeRpcCall(type, url, params) {     var myRpc;     var returnVal...

程式語言中 \r\n 的意思

我們經常會在程式語言中看到 \r\n ,大致知道是"換行"的意思,但詳細解釋確實常搞不清楚,本次經過網路搜尋並整理相關知識如下: 1.在 php、js 中的意思 \r\n或是\n都是換行的意思,請記得,是\r\n,不是\n\r \r\n通常是微軟的文件會產生的,在其它的編輯器裡面,會在一行的節尾看到 ^M,那就是\r\n 在php中,字串中的\r\n或\n,要用雙引號才有效。 使用php在unix裡面跑資料(ex:    php –f test.php),要出現換行請使用\r\n 在vim中,如果要用取代的方式來換行 (:1,$s/./&\r/g  把每個字都換行),請用 \r 在javascript裡面,換行請使用 \n(\r有時候失效) 2.回車與換行 '\r'是回車,'\n'是換行,前者使光標到行首,後者使光標下移一格。通常用的Enter是兩個加起來。下面轉一篇文章。 回車和換行 今天,我總算搞清楚“回車”(carriage return)和“換行”(line feed)這兩個概念的來歷和區別了。 在計算機還沒有出現之前,有一種叫做電傳打字機(Teletype Model 33)的玩意,每秒鐘可以打10個字符。但是它有一個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字符。要是在這0.2秒裡面,又有新的字符傳過來,那麼這個字符將丟失。 於是,研製人員想了個辦法解決這個問題,就是在每行後面加兩個表示結束的字符。一個叫做“回車”,告訴打字機把打印頭定位在左邊界;另一個叫做“換行”,告訴打字機把紙向下移一行。 這就是“換行”和“回車”的來歷,從它們的英語名字上也可以看出一二。 後來,計算機發明了,這兩個概念也就被般到了計算機上。那時,存儲器很貴,一些科學家認為在每行結尾加兩個字符太浪費了,加一個就可以。於是,就出現了分歧。 3.Unix Unix系統裡,每行結尾只有“<換行>”,即“\n”;Windows系統裡面,每行結尾是“<換行><回車>”,即“\n\r”;Mac系統裡,每行結尾是“<回車>”。一個直接後果是,Unix/Mac系統下的文件在Windows裡打開的話,所有文字會變...

PHP教學 - 利用 php 混淆器將程式碼進行編譯

圖片
因為工作的關係研究了一下 PHP 程式碼加密,假如不使用付費版的加密程式是否有替代的方式?發現到 php obfuscator 有些現成的套件可以使用,測試一下大陸寫的 php 代碼混淆器2.0版是可以進行簡單的 php 程式碼編譯,下載網址為 http://download.csdn.net/source/2805147 使用的方式如下: 將套件包下載後放置 www 目錄( xampp 為 htdocs/),開啟 indexok.php 更改來源資料夾和目的資料夾如下 //要混淆的文件位置 $mwww='C:\xampp\htdocs\test'; //混淆后的文件存放位置 $mdir='C:\xampp\htdocs\output'; 開起網頁執行 測試結果,是可以編譯加密,但這僅僅只是處理簡單的 php 程式,如果寫到物件導向、mvc 的架構,該套件處理函式及物件導向恐怕會有問題。 於是又找到另一個套件 YAK Pro https://www.php-obfuscator.com/?demo 該套件處理較完整,支援的函式也多,目前也有專門在維護,但稍為複雜點,說明如下 先從網站 github 下載套件並放置在 www (xampp htdocs/) 開啟 cmd (windows 要做環境設定增加 php.exe) 執行會發生錯誤 C:\xampp\htdocs\yakpro-po-master>php yakpro-po.php Error:  PHP-Parser is not correctly installed! You can try to use the following command:         # git clone --branch=1.x https://github.com/nikic/PHP-Parser.git 因為沒有安裝 PHP-Parser 套件,再次下命令安裝 C:\xampp\htdocs\yakpro-po-master>git clone --branch=1.x https://github.com/nikic/PHP-Parser.git Cloning ...

Python 程式碼編譯加密

Python文件類別型: 1.源程式碼.py 通過下面的形式可直接執行.py文件: 在demo1.py的文件第一行加上: #!/usr/bin/python print 'hello,world' 然後給文件加上可執行型許可權: chmod +x demo1.py 現在可以通過如下形式執行py文件: ./demo1.py 2.位元組程式碼 python源文件經編譯後產生的擴展名為 .pyc 的文件 編譯方法: import py_compile py_compile.compile("demo1.py") ---> 產生demo1.pyc 3.優化程式碼 經過優化的源文件,擴展名為 ".pyo" >>>python -O -m py_compile demo1.py 產生demo1.pyo