原文及更新:
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供烏什網(wǎng)站建設(shè)、烏什做網(wǎng)站、烏什網(wǎng)站設(shè)計(jì)、烏什網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、烏什企業(yè)網(wǎng)站模板建站服務(wù),10年烏什做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
直接在/etc/rc.local(/etc/rc.d/rc.local)文件中添加即可
上面這腳本實(shí)際上在使用時(shí)出現(xiàn)了問題, /home/neucrack/software/ss/start_ss_local.sh 這個(gè)命令始終沒有被執(zhí)行,原因是 /home/neucrack/software/ss/start_kcptun_client.sh 中的命令阻塞了進(jìn)程,導(dǎo)致后面一句始終沒有執(zhí)行,可以將他們分別放到后臺(tái)執(zhí)行就行了,如何在后臺(tái)執(zhí)行可以看文章最后一部分
也可以自己手動(dòng)在rc*.d中建立軟連接
桌面系統(tǒng)搜索 啟動(dòng) ,打開啟動(dòng)管理器 添加刪除即可
一般有以下幾種方法:
1)在輸入命令的最前面加上 nohup 命令
如 nohup your_command 這樣命令在你退出后仍然會(huì)在后臺(tái)執(zhí)行
2) setsid 命令
setsid your_command 該命令的結(jié)果是使你所運(yùn)行的命令的父進(jìn)程為init,所以只有關(guān)機(jī)該進(jìn)程才會(huì)停止
3) (your_command )
就是用括號(hào)將你的命令括起來,這樣做也是使命令的父進(jìn)程為init
4) disown
當(dāng)你在命令行下輸入 your_command 后命令就在后臺(tái)執(zhí)行了,然后執(zhí)行jobs命令,該命令會(huì)列出當(dāng)前正在后臺(tái)執(zhí)行的命令。例如輸入命令“top”
然后執(zhí)行"jobs"
輸出結(jié)果是
[1] + Suspended (tty output) top
注意行開頭方括號(hào)內(nèi)的數(shù)字,該數(shù)字叫做jobspec,是給當(dāng)前后臺(tái)運(yùn)行的job的編號(hào)。這是你只要在命令行下輸入"disown -h 1" 后臺(tái)運(yùn)行的top命令就不會(huì)受到hangup信號(hào)的影響了。
5)使用 screen 命令
在命令行下輸入screen命令就開啟了一個(gè)screen進(jìn)程,它就好像是一個(gè)全新的命令運(yùn)行環(huán)境,在該環(huán)境中你可以像在正常的terminal下那樣執(zhí)行
命令,但是這個(gè)screen是不受其父進(jìn)程的hangup信號(hào)的影響的,既然screen不受其父進(jìn)程影響,當(dāng)你意外掉線或者退出系統(tǒng)時(shí),在screen
中仍在執(zhí)行的命令仍然會(huì)繼續(xù)執(zhí)行。關(guān)于screen命令的使用方法你可以再去查閱相關(guān)資料。
很多時(shí)候,我們需要將一些服務(wù)在Linux系統(tǒng)啟動(dòng)時(shí)即自動(dòng)運(yùn)行,省得每次都要去手動(dòng)啟動(dòng)一遍,如Redis, MySQL, Nginx等。本文對(duì)CentOS與Ubuntu下開機(jī)自啟動(dòng)的配置方法進(jìn)行整理,供參考查閱。
rc.local是CentOS以前版本的方式,在CentOS7中仍然以兼容的形式存在,雖仍可用,但不推薦(推薦使用systemd service)。
1、編寫需要開機(jī)自啟動(dòng)的腳本,并添加執(zhí)行權(quán)限
作為測(cè)試,上述腳本打印一個(gè)時(shí)間到/tmp/test.log文件中
2、在/etc/rc.d/rc.local配置文件中添加腳本運(yùn)行命令(使用絕對(duì)路徑)
3、添加/etc/rc.d/rc.local文件的執(zhí)行權(quán)限
在centos7中,/etc/rc.d/rc.local沒有執(zhí)行權(quán)限,需要手動(dòng)授權(quán)
以上三步,即可使/root/test_rclocal.sh /dev/null 2/dev/null 命令在服務(wù)器系統(tǒng)啟動(dòng)時(shí)自動(dòng)運(yùn)行。
1、編寫需要開機(jī)自啟動(dòng)的測(cè)試腳本,并添加執(zhí)行權(quán)限
2、在/etc/rc.d/init.d/目錄下添加一個(gè)可執(zhí)行腳本testchkconfig
上述testchkconfig腳本的頭部必須遵循一定的格式 # chkconfig: 2345 90 10, 其中2345指定服務(wù)在哪些執(zhí)行等級(jí)中開啟或關(guān)閉,90表示啟動(dòng)的優(yōu)先級(jí)(0-100,越大優(yōu)先級(jí)越低),10表示關(guān)閉的優(yōu)先級(jí)。執(zhí)行等級(jí)包括
3、加入開機(jī)啟動(dòng)服務(wù)列表
使用 chkconfig --list 可查看當(dāng)前加入開機(jī)自啟動(dòng)的服務(wù)列表,但如Note部分所述,該命令只顯示SysV服務(wù),不包含原生的systemd服務(wù),查看systemd服務(wù)可使用systemctl list-unit-files命令。
以上三步,即可使/root/test_chkconfig.sh /dev/null 2/dev/null 命令在服務(wù)器系統(tǒng)啟動(dòng)時(shí)自動(dòng)運(yùn)行。
chkconfig的其它命令參考
CentOS7的systemd服務(wù)腳本存放在:/usr/lib/systemd/system(系統(tǒng)級(jí))/usr/lib/systemd/user(用戶級(jí))下,以.service結(jié)尾。這里以nginx為例
1、在/usr/lib/systemd/system目錄下創(chuàng)建nginx.service文件
其中Service部分的Type包括如下幾種類型:
2、 開啟開機(jī)自啟動(dòng)
以上兩步,就將nginx服務(wù)配置成了在操作系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng)。
其它命令參考
從字面看是PID文件不可讀,查看/var/run/nginx.pid,該文件也確實(shí)不存在,查看nginx.conf配置文件,發(fā)現(xiàn)是pid /var/run/nginx.pid;這行配置被注釋掉了, 如果不指定pid文件位置,nginx默認(rèn)會(huì)把pid文件保存在logs目錄中。所以出現(xiàn)systemd啟動(dòng)服務(wù)時(shí)找不到pid文件而報(bào)錯(cuò),將nginx.conf中的pid配置注釋去掉,重啟nginx.service即可。
在Ubuntu18.04中,主要也是以systemd服務(wù)來實(shí)現(xiàn)開機(jī)自啟動(dòng),systemd默認(rèn)讀取/etc/systemd/system/下的配置文件,該目錄下的一些文件會(huì)鏈接到/lib/systemd/system/下的文件。
因此可以在/etc/systemd/system/目錄下面創(chuàng)建一個(gè)自啟動(dòng)服務(wù)配置,以內(nèi)網(wǎng)穿透服務(wù)frp客戶端為例,如
各配置項(xiàng)與CentOS類似。然后將服務(wù)器加到自啟動(dòng)列表中并啟動(dòng)服務(wù)
其它更多systemctl命令與CentOS類似。
也可以使用/lib/systemd/system/rc-local.service來執(zhí)行一些開機(jī)需要執(zhí)行的腳本,該文件內(nèi)容為
從Description看它是為了兼容之前版本的/etc/rc.local的,該服務(wù)啟動(dòng)命名就是/etc/rc.local start,將該文件鏈接到/etc/systemd/system下
創(chuàng)建/etc/rc.local文件,并賦予可執(zhí)行權(quán)限
作者:半路雨歌
鏈接:
啟動(dòng)直接點(diǎn)開機(jī)鍵就可以。
重啟reboot 就可以了。
關(guān)機(jī),init3、shutdown -f now、halt 都可以關(guān)機(jī)。
重啟服務(wù)services 服務(wù) restart。
停止服務(wù)services 服務(wù) stop。
開始服務(wù)services 服務(wù) start。
服務(wù)狀態(tài)services 服務(wù) status。
擴(kuò)展資料:
常用命令及技巧:通用命令。
1、date :打印或者設(shè)置系統(tǒng)的日期和時(shí)間
2、 stty -a:可以查看或者打印控制字符(Ctrl-C、Ctrl-D、 Ctrl-Z等)
3、 passwd:用passwd -h查看
4、logout,login: 登錄shell的登錄和注銷命令
5、 more, less, head tail: 顯示或部分顯示文件內(nèi)容
6、 lp/lpstat/cancel, lpr/lpq/lprm: 打印文件
7、 chmod u+x:更改文件權(quán)限
8、 rm -fr dir:刪除非空目錄
9、cp -R dir:拷貝目錄
10、 fg jobid :可以將一個(gè)后臺(tái)進(jìn)程放到前臺(tái)
參考資料來源:百度百科-linux
到底哪些服務(wù)適合開機(jī)自啟動(dòng)?是很多Linux運(yùn)維在工作中會(huì)遇到的問題。其實(shí),只要不影響系統(tǒng)及服務(wù)的運(yùn)行,開多開少也沒關(guān)系。Linux運(yùn)維人員要明確每項(xiàng)服務(wù)的作用,不用的就不安裝,默認(rèn)安裝時(shí)則不開機(jī)自啟動(dòng)。設(shè)置開機(jī)自啟動(dòng)服務(wù)的常見方法有哪些?
1)執(zhí)行命令,然后手動(dòng)選擇處理的方法
方法1:執(zhí)行ntsysv命令,然后在彈出窗口進(jìn)行設(shè)置。
方法2:執(zhí)行setup命令→system service,然后在彈出窗口中進(jìn)行設(shè)置。
2)通過一行命令或She11腳本設(shè)置
在快速設(shè)置前,先查看默認(rèn)情況下Linux系統(tǒng)開啟的服務(wù)有哪些。如果工作在文本模式3級(jí)別,那就只需要查找3級(jí)別上開啟的服務(wù)即可。了解了系統(tǒng)在3級(jí)別上開啟的服務(wù)后,就可以通過命令快速實(shí)現(xiàn)配置了。以下便是幾種通過命令或腳本設(shè)置開機(jī)自啟動(dòng)的方法。
1:先全關(guān)閉,再開啟需要保留的。
2:一條命令搞定,Shell循環(huán)實(shí)現(xiàn)。默認(rèn)情況下需要保留的服務(wù)都已開啟,因此,關(guān)閉3級(jí)別文本模式下已開啟但又不需要的服務(wù)就好了。
3:不要Shell循環(huán)語(yǔ)句也一條命令搞定。默認(rèn)情況下要保留的服務(wù)都已開啟,因此,關(guān)閉3級(jí)別文本模式下已開啟但又不需要的服務(wù)就好了,不用循環(huán)結(jié)構(gòu)而是利用命令拼出所有要處理的命令字符串,通過bash將其當(dāng)作命令執(zhí)行。
那么到底將哪些服務(wù)作為開機(jī)自啟動(dòng)服務(wù)合適?但作為一名優(yōu)秀的Linux系統(tǒng)管理員,應(yīng)該遵守最小化原則,盡量不安裝不使用的軟件、不開啟不需要的服務(wù);這樣系統(tǒng)的性能和安全性才是最好的。
某個(gè)程序方便后續(xù)的管理;那么我們?nèi)绾卧陂_機(jī)時(shí)候,運(yùn)行此賬戶安裝的程序呢?例如:以linux下指定mycount用戶在linux開機(jī)時(shí)執(zhí)行/home/sun/startXX.sh為例:
以root登錄linux
執(zhí)行vi /etc/rc.d/rc.local
在文檔末尾添加一行語(yǔ)句:su – mycount -c “/home/sun/startXX.sh”
保存rc.local即可。
這個(gè)地方一定要注意 su – 這個(gè)是環(huán)境的變量也會(huì)做相應(yīng)的轉(zhuǎn)換;如果環(huán)境變量沒有改變的話,我們用su 就可以了。
二、
在Linux中以普通用戶開機(jī)自動(dòng)運(yùn)行腳本程序
測(cè)試環(huán)境:CentOS6.5
管理員:root
普通用戶:test1
實(shí)現(xiàn)目標(biāo):在Linux啟動(dòng)時(shí),以普通用戶test1自動(dòng)運(yùn)行位于根目錄下的腳本程序test.py,該程序會(huì)在每次執(zhí)行時(shí)自動(dòng)向本地日志文件追加一條記錄,源碼如下:
from datetime import datetime
now=datetime.now()
f=open(‘test.log’,’a’)
f.write(‘%s ‘%now)
f.close()
Linux在啟動(dòng)時(shí),會(huì)自動(dòng)執(zhí)行/etc/rc.d目錄下的初始化程序,因此我們可以把啟動(dòng)任務(wù)放到該目錄下,有兩種辦法:
方案一:
1、因?yàn)槠渲械膔c.local是在完成所有初始化之后執(zhí)行,因此我們可以把啟動(dòng)腳本寫到里面
2、用root賬號(hào)登陸Linux,vi /etc/rc.d/rc.local編輯文件,在最后加入兩行需要執(zhí)行的腳本程序:
cd /home/test1 –該步不可少,否則會(huì)提示沒有權(quán)限打開’test.log’文件
su test1 -c “python /home/test1/test.py” –把要執(zhí)行的命令作為一個(gè)參數(shù)傳遞級(jí)su
方案二:
1、init.d目錄下都為可執(zhí)行程序,他們其實(shí)是服務(wù)腳本,按照一定格式編寫,Linux 在啟動(dòng)時(shí)會(huì)自動(dòng)執(zhí)行,類似Windows下的服務(wù)
2、用root帳號(hào)登錄,vi /etc/rc.d/init.d/mystart,追加如下內(nèi)容:
復(fù)制代碼
#!/bin/bash
#chkconfig:2345 80 05 –指定在哪幾個(gè)級(jí)別執(zhí)行,0一般指關(guān)機(jī),
6指的是重啟,其他為正常啟動(dòng)。80為啟動(dòng)的優(yōu)先級(jí),05為關(guān)閉的優(yōu)先機(jī)
#description:mystart service
RETVAL=0
start(){ –啟動(dòng)服務(wù)的入口函數(shù)
echo -n “mystart serive …”
cd /home/test1
su test1 -c “python /home/test1/test.py”
}
stop(){ –關(guān)閉服務(wù)的入口函數(shù)
echo “mystart service is stoped…”
}
case $1 in –使用case,可以進(jìn)行交互式操作
start)
start
;;
stop)
stop
;;
esac
exit $RETVAL
復(fù)制代碼
3、運(yùn)行chmod +r /etc/rc.d/init.d/mystart,使之可直接執(zhí)行
4、運(yùn)行chkconfig –add mystart,把該服務(wù)添加到配置當(dāng)中
5、運(yùn)行chkconfig –list mystart,可以查看該服務(wù)進(jìn)程的狀態(tài)
總結(jié):
兩種方案的的核心都是切換用戶到test1,然后執(zhí)行命令啟動(dòng)Python程序,做成服務(wù)的好處是可以定義多個(gè)交互命令,比如:start,stop,restart,reset…,在服務(wù)運(yùn)行的過程中還可以做相應(yīng)操作。最開始的時(shí)候,我按照一般的思路寫了如下腳本,卻怎么也執(zhí)行不了:
su test1 –切換到test1用戶
cd /home/test1 –切換到根目錄
python test.py –執(zhí)行python程序
exit –退出test1帳號(hào)
看起來好象一切都沒錯(cuò),但是發(fā)現(xiàn)只運(yùn)行了第一行的命令,后面的都沒有運(yùn)行,直到退出test1用戶后才發(fā)現(xiàn)好象執(zhí)行完畢。分析原因,是因?yàn)長(zhǎng)inux啟動(dòng)的時(shí)候是在root帳號(hào)下,執(zhí)行su test1等于打開了一個(gè)新的shell腳本,因此下面的代碼都在等著新的Shell腳本結(jié)束才能運(yùn)行,就象在主程序里調(diào)用了一個(gè)子程序,而子程序是個(gè)死循環(huán),一下出來來結(jié)果下面的要等死了。知道了發(fā)生的原因,那么解決的辦法就相對(duì)簡(jiǎn)單了,就是在執(zhí)行上述腳本程序時(shí),不要離開本身的Shell。我們可以把執(zhí)行命令做為su的一個(gè)參數(shù)傳遞進(jìn)去,因?yàn)闆]有涉及到打開新的Shell,因此可以正常執(zhí)行你期望的腳本程序,順利實(shí)現(xiàn)開機(jī)自動(dòng)啟動(dòng)指定的腳本程序。
執(zhí)行方案中重要的一個(gè)命令是:
[root@localhost ~]# whoami
root
[root@localhost ~]# su – keysystem -c “whoami”
keysystem
[root@localhost ~]#
以keysystem用戶執(zhí)行whoami的命令:
[root@localhost ~]# su – keysystem -c “whoami”
文章知識(shí)點(diǎn)與官方知識(shí)檔案匹配
CS入門技能樹Linux入門初識(shí)Linux
23840 人正在系統(tǒng)學(xué)習(xí)中
打開CSDN,閱讀體驗(yàn)更佳
Linux中沒有rc.local文件的完美解決方法
主要介紹了Linux中沒有rc.local文件的解決方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
最新發(fā)布 linux 開機(jī)自啟用非root啟動(dòng)
就會(huì)用djq用戶執(zhí)行mkdir -p /home/djq/222命令。linux 開機(jī)自啟用非root啟動(dòng)。
繼續(xù)訪問
linux開機(jī)自動(dòng)執(zhí)行命令或自動(dòng)啟動(dòng)程序(rc.local)
linux開機(jī)的最后會(huì)執(zhí)行/etc/rc.local,因此可以在此腳本里面添加shell命令自動(dòng)執(zhí)行或者自動(dòng)啟動(dòng)某個(gè)進(jìn)程。 比如 自動(dòng)輸出信息: #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In
繼續(xù)訪問
跳過網(wǎng)絡(luò)啟動(dòng) linux,Linux啟動(dòng)時(shí)如何跳過fsck
在Linux里,如果一個(gè)文件系統(tǒng)被mount過一定次數(shù)后,或者距離上次fsck超過一定天數(shù),當(dāng)系統(tǒng)重起時(shí)就會(huì)自動(dòng)fsck。根據(jù)文件系統(tǒng)的大小,fsck可能需要幾分鐘甚至幾個(gè)小時(shí)。隔一段時(shí)間作一次fsck是很有必要的,但是如果你不想花費(fèi)時(shí)間fsck,你也可以用如下幾種方法跳過fsck:1. 修改/etc/fstab在/etc/fstab里, 最后一列是系統(tǒng)啟動(dòng)時(shí)fsck的順序。 文件系統(tǒng) / 應(yīng)該設(shè)...
繼續(xù)訪問
linux 查看root 進(jìn)程,Linux查看非root運(yùn)行的進(jìn)程
Linux查看非root運(yùn)行的進(jìn)程youhaidong@youhaidong-ThinkPad-Edge-E545:~$ ps -U root -u root -NPID TTY TIME CMD663 ? 00:00:00 dbus-daemon713 ? 00:00:00 rsyslogd730 ? 00:00:00 avahi-da...
繼續(xù)訪問
linux上使用非root賬戶啟動(dòng)運(yùn)行java程序
事情是這樣的、、、、、、、 公司的app后臺(tái)程序是java的,在linux上運(yùn)行時(shí)要求必須使用非root賬戶,例如使用app用戶啟動(dòng)java程序。這次運(yùn)維有事請(qǐng)假了,所以這個(gè)小任務(wù)就交給我了,多大的事情啊,這還不是分分鐘搞定的啊。 好了一步步的開始。 第一步:創(chuàng)建mobile賬戶和組 groupadd app useradd -d /usr/app -g app app 第二步:搭建...
繼續(xù)訪問
linux用其他賬號(hào)停進(jìn)程,Linux系統(tǒng)上對(duì)其他用戶隱藏進(jìn)程的簡(jiǎn)單方法
我使用的是多用戶系統(tǒng),大部分的用戶通過ssh客戶端訪問他們的資源。我如何(怎么樣)避免泄露進(jìn)程信息給他們?如何(怎么樣)在Debian/Ubuntu/RHEL/CentOS linux服務(wù)器器上阻止/避免他們看到不屬于他們的進(jìn)程?對(duì)linux上的其他用戶隱藏進(jìn)程的方法解決方法/方案:如果你使用的linux kernel(內(nèi)核)是3.2以上的版本(或者使用的RHEL/CentOS是6.5以上的版本)...
繼續(xù)訪問
轉(zhuǎn):linux開機(jī)自動(dòng)運(yùn)行
實(shí)現(xiàn)目標(biāo):在Linux啟動(dòng)時(shí),自動(dòng)運(yùn)行位于普通用戶test1根目錄下的腳本程序test.py,該程序會(huì)在每次執(zhí)行時(shí)自動(dòng)向本地日志文件追加一條記錄,源碼如下: from datetime import datetime now=datetime.now() f=open('test.log','a') f.write('%s '%now...
繼續(xù)訪問
跳過開機(jī)向?qū)?/p>
跳過開機(jī)向?qū)?/p>
繼續(xù)訪問
linux系統(tǒng)rc.local錯(cuò)誤,Linux開機(jī)啟動(dòng)文件rc.local無(wú)法執(zhí)行的解決方法
眾所周知,rc.local是Linux系統(tǒng)中的一個(gè)重要的開機(jī)啟動(dòng)文件,每次開機(jī)都要執(zhí)行這個(gè)文件。但最近很多用戶表示系統(tǒng)無(wú)法執(zhí)行這個(gè)問題件,從而導(dǎo)致了一系列的問題出現(xiàn),這是怎么回事呢?如何解決這個(gè)問題呢?下面,跟隨小編一起來看看Linux開機(jī)啟動(dòng)文件rc.local無(wú)法執(zhí)行的解決方法。Linux系統(tǒng)在Linux系統(tǒng)中,有一個(gè)重要的開機(jī)自動(dòng)啟動(dòng)腳本文件:/etc/rc.local---》/etc/rc...
繼續(xù)訪問
rc.local出錯(cuò)影響ubuntu正常啟動(dòng),跳過執(zhí)行rc.local
通過進(jìn)入單用戶模式,跳過rc.local
繼續(xù)訪問
Linux開機(jī)啟動(dòng),設(shè)置rc.local失效解決方案
在/etc/rc.local文件夾下,添加要執(zhí)行的命令,如/sbin/ifconfig docker0 mtu 1454 注意這里要使用絕對(duì)路徑/sbin/ifconfig 如果開機(jī)發(fā)現(xiàn)執(zhí)行失敗,則需要在上一行添加sleep 10 由于ifconfig服務(wù)不一定在rc.local之前啟動(dòng),所以讓系統(tǒng)等待十秒hours在執(zhí)行sleep 10 /sbin/ifconfig docker0 mtu 14
繼續(xù)訪問
Linux系統(tǒng)跳過密碼登錄
一、引導(dǎo)系統(tǒng) RHEL7的標(biāo)準(zhǔn)引導(dǎo)系統(tǒng)是GRUB2,RHEL6默認(rèn)使用GRUB1,這里主要講GRUB2。 在Linux系統(tǒng)開機(jī)選擇內(nèi)核時(shí),按下e進(jìn)入內(nèi)核引導(dǎo)參數(shù)的編輯菜單,找到以linux16開頭的一行,在行末添加更多的命令。例如,在行末尾添加system.unit=emergency.target,然后按Ctrl+X,則系統(tǒng)將會(huì)以緊急目標(biāo)模式啟動(dòng)。 如果在系統(tǒng)引導(dǎo)到GUI環(huán)境中出現(xiàn)問題,可以在內(nèi)核命令行末尾加入system.unit=multi-user.target,若引導(dǎo)成功,則會(huì)登錄到命令行模
繼續(xù)訪問
rc.local使用非root用戶
su -aaa-c "/data/tomcat/bin/startup.sh"
繼續(xù)訪問
Linux設(shè)置非root用戶啟動(dòng)程序
Linux設(shè)置非root用戶啟動(dòng)程序
繼續(xù)訪問
開機(jī)自啟動(dòng)非root用戶的服務(wù)
設(shè)置非root用戶的服務(wù)開機(jī)自啟動(dòng) 比如:chkconfig mysql on 是無(wú)效的 可以這樣設(shè)置: 在root用戶下 vi /etc/rc.local 或者 vi /etc/rc.d/rc.local 在最后一行加上 su - mysqladmin -c "/usr/local/mysql/startMysql.sh" 其中mysqladmin是管理mysql的用戶, "/usr/loc...
繼續(xù)訪問
linux非root用戶打開80,Linux非root用戶如何使用80端口啟動(dòng)程序
默認(rèn)情況下Linux的1024以下端口是只有root用戶才有權(quán)限占用,我們的tomcat,apache,nginx等等程序如果想要用普通用戶來占用80端口的話就會(huì)拋出java.net.BindException: Permission denied:80的異常。bind時(shí)perror提示錯(cuò)誤信息:permission denied解決辦法有兩種:1.使用非80端口啟動(dòng)程序,然后再用iptables...
繼續(xù)訪問
Linux在任意目錄下執(zhí)行指定的腳本
前言 我有個(gè)腳本,我只能在腳本所在的文件夾下面運(yùn)行,這樣的話很不方便,如果我去了別的目錄下面的話,我就無(wú)法運(yùn)行這個(gè)腳本了… 解決 在profile中設(shè)置PATH, 假如我想給 xcall 腳本設(shè)置能讓在任意的目錄下去運(yùn)行, 此時(shí)xcall在/root/soft/script 目錄下. 編輯環(huán)境變量 [root@zjj101 etc]# cd /etc [root@zjj101 etc]# vim profile # 上面省略........ export HIVE_HOME=/root/soft/hive
繼續(xù)訪問
Linux系統(tǒng)啟動(dòng)過程分析
經(jīng)過對(duì)Linux系統(tǒng)有了一定了解和熟悉后,想對(duì)其更深層次的東西做進(jìn)一步探究。這當(dāng)中就包括系統(tǒng)的啟動(dòng)流程、文件系統(tǒng)的組成結(jié)構(gòu)、基于動(dòng)態(tài)庫(kù)和靜態(tài)庫(kù)的程序在執(zhí)行時(shí)的異同、協(xié)議棧的架構(gòu)和原理、驅(qū)動(dòng)程序的機(jī)制等等。 本人在綜合了現(xiàn)有網(wǎng)上大家智慧的基礎(chǔ)上,結(jié)合對(duì)2.6.32的內(nèi)核代碼的研讀,基于CentOS 6.0系統(tǒng)對(duì)Linux的啟動(dòng)流程做了些分析。由于才疏學(xué)淺,知...
繼續(xù)訪問
linux跳過開機(jī)啟動(dòng)項(xiàng)
linux設(shè)置開機(jī)自啟動(dòng)執(zhí)行命令 :
執(zhí)行命令 : 編輯"/etc/rc.local",添加你想開機(jī)運(yùn)行的命令
運(yùn)行程序腳本 :然后在文件最后一行添加要執(zhí)行程序的全路徑。
例如,每次開機(jī)時(shí)要執(zhí)行一個(gè)hello.sh,這個(gè)腳本放在/usr下面,那就可以在"/etc/rc.local"中加一行"/usr/./hello.sh",或者" cd /opt ./hello.sh "
注意,你的命令應(yīng)該添加在:exit 0 之前
linux在“/etc/rc.d/init.d”下有很多的文件,每個(gè)文件都是可以看到內(nèi)容的,其實(shí)都是一些shell腳本或者可執(zhí)行二進(jìn)制文件 Linux開機(jī)的時(shí)候,會(huì)加載運(yùn)行/etc/init.d目錄下的程序,因此我們可以把想要自動(dòng)運(yùn)行的腳本放到這個(gè)目錄下即可。系統(tǒng)服務(wù)的啟動(dòng)就是通過這種方式實(shí)現(xiàn)的。
簡(jiǎn)單的說,運(yùn)行級(jí)就是操作系統(tǒng)當(dāng)前正在運(yùn)行的功能級(jí)別。
例:在Ubuntu/debain里,可以使用update-rc.d命令來把示例腳本:/etc/init.d/proxy安裝到各個(gè)runlevel中。
update-rc.d后面有三個(gè)參數(shù),分別是/etc/init.d下的腳本名字,默認(rèn)安裝方式,運(yùn)行的優(yōu)先級(jí)。優(yōu)先級(jí)的數(shù)字越大,表示越遲運(yùn)行,這里我們把自己寫的服務(wù)放在最后運(yùn)行。
如果要卸載隨機(jī)啟動(dòng)的服務(wù),執(zhí)行
在update-rc.d安裝的時(shí)候提示了警告信息,是因?yàn)槲覀儗懙?etc/init.d/proxy太簡(jiǎn)陋了,只包含了我們想要的命令,連LSB的信息也沒有提供。
只需要對(duì)自啟動(dòng)腳本做一些小改動(dòng),就可以避免那個(gè)警告了。如下:
到此,一個(gè)最簡(jiǎn)單的隨機(jī)啟動(dòng)服務(wù)寫好了,看起來文章挺長(zhǎng)的,但其實(shí)也就幾個(gè)命令而已。 在下次開機(jī)啟動(dòng)的時(shí)候,proxy.py就會(huì)以root用戶身份被自動(dòng)運(yùn)行。
在/etc/init.d下新建示例腳本文件(startTest.sh),該腳本會(huì)啟動(dòng)/opt/test.sh。內(nèi)容如下:
寫了腳本文件之后事情還沒有完,繼續(xù)完成以下幾個(gè)步驟: