linux啟動app命令:做 Linux 嵌入式開發(fā),經(jīng)常會遇到要設(shè)置自己的應(yīng)用程序在系統(tǒng)開機的時候自動啟動,并且一般情況我們不想安裝一些額外的軟件去實現(xiàn)此種需求。那么直接根據(jù)當(dāng)前系統(tǒng)自帶的默認的一些工具實現(xiàn)用戶軟件的開機自啟動。
成都創(chuàng)新互聯(lián)是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來公司不斷探索創(chuàng)新,始終堅持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過去的10余年時間我們累計服務(wù)了上千家以及全國政企客戶,如護欄打樁機等企業(yè)單位,完善的項目管理流程,嚴格把控項目進度與質(zhì)量監(jiān)控加上過硬的技術(shù)實力獲得客戶的一致稱譽。
??本次測驗的系統(tǒng)環(huán)境為 Ubuntu 16.04 LTS,測試內(nèi)容均得到正確的驗證,如果其他環(huán)境出現(xiàn)不一致的現(xiàn)象,請查閱相關(guān)的差異。
??比如先要實現(xiàn)下面的應(yīng)用程序的開機自啟動(實現(xiàn)的代碼最下面給出,有需要的可以查看):
1. 應(yīng)用程序的名稱:app.bin
2. 應(yīng)用程序的保存路徑:/home/ubuntu/app/ 下
3. 應(yīng)用程序的工作路徑:/home/ubuntu/app/ 下
linux 重啟命令方法如下:
1、在命令行中輸入:“shutdown -r now”表示現(xiàn)在重啟計算機。按下回車便會進行重啟。
2、另一種重啟方式就是輸入:“reboot”也表示重啟,一樣會進行重啟。
Linux是一套免費使用和自由傳播的類Unix操作系統(tǒng),是一個基于POSIX和Unix的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。它能運行主要的Unix工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。它支持32位和64位硬件。Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計思想,是一個性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。
具體步驟如下:
1、首先我們在命令行運行程序需要借助jdk的環(huán)境依賴,打開jdk包。
2、接下來我們需要打開運行窗口,然后在運行窗口中輸入cmd命令,如下圖所示
3、在CMD命令行界面中我們輸入cd命令進入到程序文件所在的目錄,如下圖所示
4、接下來執(zhí)行命令對程序文件進行編譯,如下圖所示
5、編譯完畢以后我們會在文件夾下面看到一個class文件,這個就是虛擬機編譯完產(chǎn)生的文件,如下圖所示
6、完成上述步驟后,即可在linux命令行中執(zhí)行應(yīng)用程序。
要充分理解本文,必須具備Windows 環(huán)境下桌面應(yīng)用程序的工作經(jīng)驗,我認為讀者對如何使用 Linux 桌面有一個基本的了解。使用一個運行的 Linux 計算來機探討本文的概念和示例是很有幫助的。
有時候第一次在 Linux 上運行一個應(yīng)用程序需要一點額外工作。有些應(yīng)用程序,比如服務(wù)器服務(wù),可能無法安裝為服務(wù),因此您需要從命令行啟動這些應(yīng)用程序。對于啟動這些應(yīng)用程序的用戶帳戶而言,需要在應(yīng)用程序文件中設(shè)置執(zhí)行許可標(biāo)志 (x)。
Linux 在內(nèi)核空間或用戶空間運行進程。用戶空間 是操作系統(tǒng)的區(qū)域,應(yīng)用程序通常在此運行。簡單地說,每個用戶帳戶有其自己的用戶空間,應(yīng)用程序在這個領(lǐng)域內(nèi)運行。
默認情況下,只有 root 用戶有權(quán)訪問內(nèi)核空間。root 用戶 是 Linux 中的超級用戶,相當(dāng)于 Windows 中的管理員帳戶。在 root 用戶帳戶下運行應(yīng)用程序可能會引起安全風(fēng)險,是不可取的。
很多服務(wù)器服務(wù)需要 root 權(quán)限啟動服務(wù)。然而,服務(wù)啟動后,root 帳戶通常會將其移至服務(wù)帳戶。嚴格地說,Linux 中的服務(wù)帳戶 才是標(biāo)準(zhǔn)的用戶帳戶。主要區(qū)別是服務(wù)帳戶僅用于運行一個服務(wù),而不是為任何實際登錄的用戶準(zhǔn)備的。
您可以使用 chmod 命令在一個文件中設(shè)置執(zhí)行權(quán)限。在 Linux 中,umask 設(shè)置通常用來防止下載的文件被執(zhí)行,也有充分的理由相信,因為它有助于維護 Linux 計算機的安全性。
大多數(shù) Linux 發(fā)行版具有一個值為 022 的 umask 設(shè)置,這意味著,默認情況下一個新文件權(quán)限設(shè)置為 644。權(quán)限的數(shù)字表示形式采用讀 (4)、寫 (2)、執(zhí)行 (1) 的格式。因此,默認權(quán)限為 644 的應(yīng)用程序下載意味著文件所有者有讀寫權(quán)限,而組用戶和其他用戶只有讀權(quán)限。
例如,為每個人賦予一個文件的執(zhí)行權(quán)限,使用 chmod a+x 命令。a 表示所有人,加號 (+) 表示添加,而 x 表示執(zhí)行。同樣地,如果應(yīng)用程序是一個服務(wù)器服務(wù),您應(yīng)該確保只有授權(quán)帳戶才有權(quán)執(zhí)行此服務(wù)。
如果一個應(yīng)用程序能夠在標(biāo)準(zhǔn)用戶帳戶權(quán)限下運行,但只有特定組中的用戶才需要使用它,您可以將該組所有者權(quán)限設(shè)置為可執(zhí)行,然后將這些用戶添加到該組中。
更具體地說,您可以在一個可執(zhí)行文件中設(shè)置訪問控制列表 (ACL) 權(quán)限,賦予特定用戶或組權(quán)限來運行該應(yīng)用程序。使用 setfacl 實用工具設(shè)置 ACL 權(quán)限。
對于這些需要以 root 用戶啟動進程的應(yīng)用程序,比如服務(wù)器服務(wù),您有幾個選擇??偨Y(jié)了允許用戶執(zhí)行需要 root 權(quán)限的服務(wù)器服務(wù)的各種選項。
作為 root 用戶 不推薦用于服務(wù)器服務(wù)。當(dāng)用戶已經(jīng)知道 root 密碼而且應(yīng)用程序泄露不是首要關(guān)注問題時,可用于應(yīng)用程序。
SetUID 由于安全問題,不推薦使用。SetUID 允許標(biāo)準(zhǔn)用戶以另一個用戶方式,比如 root 用戶,執(zhí)行一個文件。
sudo 很常用,并且被認為是一個很好的實踐。sudo 授予一個用戶或組成員權(quán)限以執(zhí)行可能額外需要 root 權(quán)限的文件。該用戶不需要知道 root 密碼。
帶有文件權(quán)限的標(biāo)準(zhǔn)用戶帳戶 在一個文件上為用戶所有者、組所有者或其他人(所有人)設(shè)置執(zhí)行權(quán)限。這是授予那些不需要 root 權(quán)限來執(zhí)行應(yīng)用程序的用戶的常用方法。
帶有 ACL 權(quán)限的標(biāo)準(zhǔn)用戶帳戶 使用較少,但是如果您不想授予一個用戶 sudo 訪問或者更改文件的權(quán)限,這也是一個可行的解決方案。在一個文件上使用 setfacl 命令,您可以授予一個特定用戶或用戶組執(zhí)行該文件的權(quán)力。
在管理 Linux 服務(wù)器時,從命令行運行應(yīng)用程序是一項基本的任務(wù)。很多應(yīng)用程序使用 shell 腳本(類似于 Windows 批處理文件 .bat)來啟動應(yīng)用程序并執(zhí)行其他任務(wù),比如設(shè)置變量以及為其他用戶分配進程。例如,應(yīng)用程序可能需要一個 Java? Virtual Machine (JVM) 來執(zhí)行。那樣的話,shell 腳本可以設(shè)置適當(dāng)?shù)沫h(huán)境變量,然后執(zhí)行 Java 命令來運行 Java Archive (JAR) 或類文件。這同樣適用于使用 Perl、Python、甚至 C# 的應(yīng)用程序。(當(dāng)然,C# 編譯的應(yīng)用程序可以在 Linux 上運行)
從命令行或者 shell 提示符執(zhí)行應(yīng)用程序的一個常用方法是使用 ./ 命令。如果您在 Linux 中使用句號 (.) 和正斜杠 (/),就意味著告訴環(huán)境您想要以可執(zhí)行文件運行該文件。例如,運行一個名為 myapp 的可執(zhí)行文件,您可以使用 ./myapp 命令。同樣地,您可以在文件名之前加上語言環(huán)境,比如:
sh php python perl java
但更多情況下,套裝應(yīng)用程序使用 shell 腳本,以 #! 符號設(shè)置環(huán)境變量提供該語言的運行時可執(zhí)行路徑,比如 #!/usr/bin/python。您也應(yīng)該熟悉這種方法。
清單 1 使用 catalina.sh 默認腳本通過 ./ 方法啟動 Apache Tomcat 應(yīng)用程序服務(wù)器。然后,使用 sh 方法啟動服務(wù)器。因為默認端口是 8080,標(biāo)準(zhǔn)用戶不需要對其進行特別修改就可以啟動該服務(wù)。
用戶想要在linux開機的時候自啟動相關(guān)的程序。那我們要怎么設(shè)置呢?下面由我為大家整理了linux下開機自啟動命令的相關(guān)知識,希望對大家有所幫助!
linux下開機自啟動命令
1.開機啟動時自動運行程序
Linux加載后, 它將初始化硬件和設(shè)備驅(qū)動, 然后運行第一個進程init。init根據(jù)配置文件繼續(xù)引導(dǎo)過程,啟動其它進程。通常情況下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目錄下的腳本文件,可以使init自動啟動其它程序。
例如:編輯 /etc/rc.d/rc.local 文件,在文件最末加上一行"xinit"或"startx",可以在開機啟動后直接進入X-Window。
擴展:其他情況下linux自啟動程序命令
2.登錄時自動運行程序
用戶登錄時,bash首先自動執(zhí)行系統(tǒng)管理員建立的全局登錄script :/etc/profile。然后bash在用戶起始目錄下按順序查找三個特殊文件中的一個:/.bash_profile、/.bash_login、 /.profile,但只執(zhí)行最先找到的一個。
因此,只需根據(jù)實際需要在上述文件中加入命令就可以實現(xiàn)用戶登錄時自動運行某些程序(類似于DOS下的Autoexec.bat)。
3.退出登錄時自動運行程序
退出登錄時,bash自動執(zhí)行個人的退出登錄腳本/.bash_logout。例如,在/.bash_logout中加入命令"tar -cvzf c.source.tgz *.c",則在每次退出登錄時自動執(zhí)行 "tar" 命令備份 *.c 文件。
4.定期自動運行程序
linux有一個稱為crond的守護程序,主要功能是周期性地檢查 /var/spool/cron目錄下的一組命令文件的內(nèi)容,并在設(shè)定的時間執(zhí)行這些文件中的命令。用戶可以通過crontab 命令來建立、修改、刪除這些命令文件。
例如,建立文件crondFile,內(nèi)容為"00 9 23 Jan * HappyBirthday",運行"crontab cronFile"命令后,每當(dāng)元月23日上午9:00系統(tǒng)自動執(zhí)行"HappyBirthday"的程序("*"表示不管當(dāng)天是星期幾)。 (/etc/crontab中配置命令即可)也可以
5.定時自動運行程序一次
定時執(zhí)行命令at 與crond 類似(但它只執(zhí)行一次):命令在給定的時間執(zhí)行,但不自動重復(fù)。at命令的一般格式為:at [ -f file ] time ,在指定的時間執(zhí)行file文件中所給出的所有命令。也可直接從鍵盤輸入命令:
6.創(chuàng)建開機自啟動腳本
1) 將你的啟動腳本復(fù)制到 /etc/init.d目錄下
以下假設(shè)你的腳本文件名為 test。
2) 設(shè)置腳本文件的權(quán)限
$ sudo chmod 755 /etc/init.d/test
3) 執(zhí)行如下命令將腳本放到啟動腳本中去:
$ cd /etc/init.d
$ sudo update-rc.d test defaults 95
注:其中數(shù)字95是腳本啟動的順序號,按照自己的需要相應(yīng)修改即可。在你有多個啟動腳本,而它們之間又有先后啟動的依賴關(guān)系時你就知道這個數(shù)字的具體作用了。該命令的輸出信息參考如下:
update-rc.d: warning: /etc/init.d/test missing LSB informationupdate-rc.d: see
卸載啟動腳本的方法:
$ cd /etc/init.d
$ sudo update-rc.d -f test remove
命令輸出的信息參考如下:
Removing any system startup links for /etc/init.d/test … /etc/rc0.d/K95test /etc/rc1.d/K95test /etc/rc2.d/S95test /etc/rc3.d/S95test /etc/rc4.d/S95test /etc/rc5.d/S95test /etc/rc6.d/K95test
準(zhǔn)確說,linux
不存在“用命令行登陸”的說法。
準(zhǔn)確應(yīng)該是從本地字符終端登陸。因為在登陸前,是沒有命令行的,命令行是一個用戶交互操作界面,在你還沒有登陸的時候,是不存在“命令行”的。
至于如何切換到本地字符終端,圖形狀態(tài)下用
ctrl
+
alt
+
f1
到
f6
即可,一般
linux
的設(shè)計都是
1-6
是字符終端,7
是圖形終端,部分發(fā)行版
f1
是字符終端,f2-f7
是字符終端。
你切換到這個終端里,就可以看到提示你輸入用戶名的提示了,輸入用戶名后回車就是輸入密碼。密碼無回顯,正確輸入后回車即可,別因為沒看到密碼哪一行按了鍵盤沒反應(yīng)就覺得機器壞了。