對於有些snap應用來說,我們很希望在snap安裝時能夠執行我們的一段指令碼來做一些我們想要做的事,比如建立乙個資料夾等.那麼我們如何能得到這個事件呢?在我們的先前的文章"如何為我們的ubuntu core應用進行設定"中,我們已經展示了如何設定我們的snap應用.在那裡面的configure指令碼在設定時會被呼叫.事實上,它在安裝時也會被自動呼叫.下面,我們以如下的例子來說明:
在上面的例子中,我們的configure指令碼如下:
#!/bin/sh
echo "this is called during the installation!"
exit 1
這是乙個非常簡單的指令碼程式.在我們的安裝過程中,它返回的值是"1",表明它是失敗的.那麼這個應用將不被成功安裝:
error: cannot perform the following tasks:
- run configure hook of "hello-install" snap if present (this is called during the installation!)
name version rev developer notes
classic 16.04 17 canonical devmode
core 16.04.1 716 canonical -
grovepi-server 1.0 x1 devmode
packageproxy 0.1 3 ogra -
pi2 16.04-0.17 29 canonical -
pi2-kernel 4.4.0-1030-3 22 canonical -
snapweb 0.21.2 25 canonical -
顯然通過上面的展示,helloworld-install沒有被安裝到我們的系統中去.
如果我們把configure指令碼修改為:
#!/bin/sh
echo "this is called during the installation!"
exit 0
這個指令碼的返回值為"0",表明它的安裝是成功的.
hello-install 1.0 installed
name version rev developer notes
classic 16.04 17 canonical devmode
core 16.04.1 716 canonical -
grovepi-server 1.0 x1 devmode
hello-install 1.0 x1 -
packageproxy 0.1 3 ogra -
pi2 16.04-0.17 29 canonical -
pi2-kernel 4.4.0-1030-3 22 canonical -
snapweb 0.21.2 25 canonical -
我們可以在系統的/var/log/syslog中找到這個指令碼執行時的輸出:
顯然指令碼在安裝時有被正常執行.我們可以通過執行這樣乙個hook來對我們的應用做一些初始化,從而為接下來的應用的執行鋪好基礎.
如何在程序程序終止時執行函式
通過linux系統呼叫來完成這個操作,atexit 和on exit atexit 函式原型 include int atexit void function void 示例 include include include include static void my handler void in...
如何在Linux終端同時執行多個Linux命令
在一行中執行兩個或多個命令可以節省大量時間,並在linux中提高效率。在linux中,有三種方法可以在一行中執行多個命令 使用 符號執行多條命令 其中最簡單的是分號 使用方式如下 cmd1 cmd2 cmd3cmd1將首先執行,不管cmd1執行成功還是出現錯誤,cmd2都會在它之後執行,當cmd2命...
如何在Linux環境下實現定時執行PHP的計畫任務
實踐操作如下 1 工具 putty.exe 2 伺服器環境 ubuntu linux系統 thinkphp 3.1.3 php5.6 mysql 4 然後,在專案根目錄下建立cron.php,如下 url timeout 60 data array header array ch curl init...