nohup + & 同時執行多行指令 - Linux

Damian avatar
By Damian
at 2015-07-25T16:48

Table of Contents

※ 引述《gigigigi (gigigigi)》之銘言:

因為指令太長直接在 PTT 上面推文不方便,直接回文

: 我想使用 nohup & 再背景自動 build code
: 可是我build code 需要有多行指令
: export USERDATA_APK="Facebook_Client";
: source build/envsetup.sh; lunch dlx-userdebug DEBUG;
: make 2>&1 > make.log
: 我把上面合併起來變成一行 ,指令前後分別加上nohup , & 包住這些指令
: 不過還是無法build成功
: nohup export USERDATA_APK="Facebook_Client" ;
: source build/envsetup.sh; lunch dlx-userdebug DEBUG; make 2>&1 >
: make.log &
: 請問這是什麼原因?
: 謝謝

這個語法有點問題,要記得 nohup 後面要傳入實際外部命令達成目的效果,
其中 export 這是 bash 內建命令所以不能夠這樣使用

指令內 lunch 不知道是 envsetup.sh 產生的 function 呼叫名稱還是外部的
程式檔案?這會牽涉到整個要套用 nohup 有不同情況。

建議上面這些命令寫成一個 shell script,後續可以用 nohup 來執行是比較
快速與方便的作法。

#!/bin/bash

export USERDATA_APK="Facebook_Client";
source build/envsetup.sh; lunch dlx-userdebug DEBUG;
make

編寫好之後儲存,chmod a+x filename.sh 完成權限設定,後續可以用
nohup ./filename.sh > result.log 2>&1 & 這樣方式執行就好

另外你原本 make 2>&1 > make.log 這語法也不大正確,正確應該是
make > make.log 2>&1,後者方式才可以正確把 stdout/stderr 訊息都儲存起來,
你的順序反了儲存的結果就有點問題。

make 2>&1 > make.log 這會變成把原本透過 stdout 訊息儲存到 make.log 檔案,
而透過 stderr 訊息顯示在螢幕上面。

--
Tags: Linux

All Comments

虛擬歌手徵音梅林V1.0日語版發表

Ina avatar
By Ina
at 2015-07-25T13:21
http://projectmeilin.github.io/ 弄了很多年,終於進入一般人也可以使用的狀態,現在下載回去,可以在UTAU上製作演唱 歌曲了。我們自己完全開源的LINNE平台以及下階段的國語資料庫製作,也歡迎更多朋友來 共襄甚舉。 demo andamp; testing: https://s ...

nohup + & 同時執行多行指令

James avatar
By James
at 2015-07-25T01:43
我想使用 nohup andamp; 再背景自動 build code 可是我build code 需要有多行指令 export USERDATA_APK=and#34;Facebook_Clientand#34;; source build/envsetup.sh; lunch dlx-userdebug ...

用 USB 安裝 linux 失敗

Dinah avatar
By Dinah
at 2015-07-25T00:34
那麼我要怎麼在 windows 上製作 linux 的 USB 安裝碟? 我要安裝的是我退換下來的舊設備, 所以都沒有 UEFT BIOS ~ ※ 引述《fourdollars (四元)》之銘言: : 如果可能的話,請不要在 Windows 上面使用 UNetbootin 來產生 USB 安裝碟 : 因為 ...

決定來挑戰:自己寫BBS

Sarah avatar
By Sarah
at 2015-07-24T11:14
推 abcdefghi: telnet要一直佔著tcp connection不放,真的不適合繼續用 07/21 11:13 推 abcdefghi: http是stateless喜歡佔住tcp或是一次就斷線都可以,serv 07/22 05:02 → abcdefghi: er或client可以根據自己的情 ...

用 USB 安裝 linux 失敗

Doris avatar
By Doris
at 2015-07-24T11:01
如果可能的話,請不要在 Windows 上面使用 UNetbootin 來產生 USB 安裝碟 因為 UNetbootin 會修改 ISO 當中 GRUB config 的內容 如果電腦是使用 UEFI BIOS 的話,可以直接用 7-ZIP 之類的軟體將 ISO 內容解開 到已經有 FAT32 檔案系統的 ...