国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

linux中service *** start與直接運行/usr/bin/***的區別

2024-06-28 16:01:13
字體:
來源:轉載
供稿:網友

在linux想要運行啟動一個服務有兩種方法:

1,運行/etc/init.d/目錄下的shell腳本,還可以有快捷方式,service *** start/ stop/restart /status,

 2,直接運行/usr/bin目錄下的服務文件;

 

第一種方法啟動的程序可以通過service命令來管理,比如說查看狀態 service --status-all

查看/etc/init.d目錄,發現下面都是shell腳本,腳本里面運行的程序最終還是指向了/usr/bin下面的程序,只不過在shell腳本中可能直接對程序的一些運行參數繼續進行了設置;

 

第二種方法,直接運行/usr/bin/****,如果運行時有配置文件的話,需要加上 --config *****,用這種方法啟動程序后,不能用service命令查看狀態;

 

舉例:/etc/init.d/openstack-nova-api

 

suffix=apiPRog=openstack-nova-$suffixexec="/usr/bin/nova-$suffix"config="/etc/nova/nova.conf"pidfile="/var/run/nova/nova-$suffix.pid"logfile="/var/log/nova/$suffix.log"[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$proglockfile=/var/lock/subsys/$progstart() {    [ -x $exec ] || exit 5    [ -f $config ] || exit 6    echo -n $"Starting $prog: "    daemon --user nova --pidfile $pidfile "$exec --config-file $config --logfile $logfile &>/dev/null & echo /$! > $pidfile"    retval=$?    echo    [ $retval -eq 0 ] && touch $lockfile    return $retval}stop() {    echo -n $"Stopping $prog: "    killproc -p $pidfile $prog    retval=$?    echo    [ $retval -eq 0 ] && rm -f $lockfile    return $retval}restart() {    stop    start}reload() {    restart}force_reload() {    restart

 

 

然后用 ps aux |grep /usr/bin/nova-api來查看一下當前進程:

/usr/bin/python /usr/bin/nova-api --config-file /etc/nova/nova.conf --logfile /var/log/nova/api.log,

 

因此二者的等價關系為:

service openstack-nova-api start ====  /usr/bin/python /usr/bin/nova-api --config-file /etc/nova/nova.conf --logfile /var/log/nova/api.log,

 

編寫屬于自己的LinuxService命令

 

最近在玩Liunx,發現linux啟動服務是用SERVICE + COMMAND,覺得很有意思,因為command命令本身也是一個腳本啊,比如說:service network restart;好奇心就來了,怎么能夠做一個屬于自己的service命令呢。

其實很簡單,只要我們認識service這個命令的原理就行了。如果要知道service這個命令怎么用,你就自己man service下,在這里,我簡要說下service的運行過程。舉個例子來說:service network restart。

首先呢,sevice 會去尋找/etc/init.d下的network腳本,restart是network腳本里的一個參數(你可以去查看network這個腳本支持的參數),然后告訴系統運行network這個腳本,剩下的事情就交給network腳本去坐了,事實就是這么簡單。

現在,你應該知道怎么編寫屬于自己的service命令了吧,編寫一個腳本,然后把它放在/etc/init.d這個目錄底下,你就可以用service +腳本名字 運行它。如果是要開機自動啟動那就得用chkconfig命令了。

注意:

A、service這個命令往往是即時生效,不用開關機,但是重啟后服務會回到默認狀態。

B、chkconfig是用于把服務加到開機自動啟動列表里,只要啟動它,就能自動啟動,重啟后永久生效

即:chkconfig --add COMMAND 

      chkconfig COMMAND on/off    重啟后永久生效


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 普安县| 盐城市| 年辖:市辖区| 大埔县| 璧山县| 株洲市| 桃园市| 银川市| 井研县| 厦门市| 龙游县| 宁强县| 五大连池市| 泗水县| 广安市| 富民县| 温宿县| 徐汇区| 灯塔市| 平陆县| 石阡县| 南投市| 东莞市| 五大连池市| 林西县| 谢通门县| 临澧县| 鄂托克旗| 伊吾县| 安福县| 丁青县| 敖汉旗| 汝州市| 论坛| 突泉县| 枣阳市| 广汉市| 保山市| 武川县| 建瓯市| 柞水县|