第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在Centos7.x上如何以后臺(tái)服務(wù)方式運(yùn)行PHP文件

在Centos7.x上如何以后臺(tái)服務(wù)方式運(yùn)行PHP文件

PHP
紅顏莎娜 2019-03-12 22:28:11
我知道在Centos的遠(yuǎn)程命令行模式下通過php XXX.php方式去執(zhí)行PHP文件。但這種方式一旦關(guān)閉終端,就會(huì)停止。我想把PHP文件以后臺(tái)服務(wù)方式運(yùn)行,不知道怎么寫,求解答。謝謝
查看完整描述

8 回答

?
波斯汪

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊

(1)如果你要執(zhí)行的php文件是定時(shí)執(zhí)行的,通過Linux crontab定時(shí)執(zhí)行任務(wù),基本格式為
        *  command
分 時(shí) 日 月 周 命令

(2)如果你是不斷要在后臺(tái)跑腳本,也可以借助一些進(jìn)程控制工具,譬如Supervisor,舉個(gè)之前在ubuntu配置的例子:
//如果沒有安裝supervisor,要先安裝,已經(jīng)安裝的跳過這一步
$ sudo apt-get install supervisor

$ cd /etc/supervisor/conf.d
//創(chuàng)建一個(gè)進(jìn)程配置文件
$ sudo vi laravel_queue_order.conf

//內(nèi)容如下:
[program:yourProgramName]
process_name=%(program_name)s_%(process_num)02d
command=php yourCommand
directory=/var/www/yourproject
autostart=true
autorestart=true
numprocs=4
stdout_logfile=/var/www/yourproject/storage/logs/yourProjectLogName.log

//進(jìn)程數(shù)numprocs由自己確定

//開啟進(jìn)程
sudo service supervisor start
sudo supervisorctl update
sudo supervisorctl reread
sudo supervisorctl start yourProgramName

//可以使用htop查看進(jìn)程是否正確運(yùn)行中
$ htop
//如果有出現(xiàn)command為php yourCommand的進(jìn)程,代表進(jìn)程啟動(dòng)成功

查看完整回答
反對 回復(fù) 2019-03-18
?
牧羊人nacy

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊

試試守護(hù)進(jìn)程啊 老哥

class deamon 
{
    public function _deamon() {
        $pid = pcntl_fork();
        if($pid == -1) throw new Exception('fork fail');
        else if($pid > 0) {
            exit('parent gone'.PHP_EOL);
        }
        
        if(posix_setsid() === -1) throw new Exception('set sid fail');
        
        chdir('/tmp/deamon');
        umask(0);
        echo "child process id:" . posix_getpid().PHP_EOL;
        while(1) {
            // 需要執(zhí)行的代碼
        }
    }
}

不想執(zhí)行的時(shí)候, kill pid即可

查看完整回答
反對 回復(fù) 2019-03-18
?
qq_花開花謝_0

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊

有幾個(gè)可用方法:

  • &:當(dāng)前 shell 進(jìn)程下生成子進(jìn)程運(yùn)行

    php run.php &

    缺點(diǎn):當(dāng)前 session 斷開時(shí),會(huì)向其子進(jìn)程發(fā)出 hang up 信號(hào),導(dǎo)致掛起中斷

  • nohup 配合 &:忽略掛起信號(hào)運(yùn)行

    nohup php run.php &

    解決 & 中斷的問題。

  • setsid:讓進(jìn)程在一個(gè)新的 session 下運(yùn)行,也可以避免因?yàn)楫?dāng)前 session 中斷,而引起的退出
  • supervise:是 daemontools 的一個(gè)工具,可以用來監(jiān)控管理 linux 下的應(yīng)用程序運(yùn)行情況,在應(yīng)用程序出現(xiàn)異常時(shí),supervise 可以重新啟動(dòng)指定程序。

具體應(yīng)用哪個(gè)需要看實(shí)際需求,

  • 如果是很快執(zhí)行完的后臺(tái)進(jìn)程,可以直接用 &
  • 如果是需要執(zhí)行一段時(shí)間(這段時(shí)間內(nèi)會(huì)退出當(dāng)前的 shell),則可以考慮配合 nohup 或者 setsid 來運(yùn)行后臺(tái)進(jìn)程。

可以參考我的一篇共享的一篇文章:Linux 技巧:讓進(jìn)程在后臺(tái)可靠運(yùn)行的幾種方法

文中相對全面的總結(jié)了 linux 后臺(tái)運(yùn)行進(jìn)程的幾種方法,并做了對比。
閱讀此文,可以擴(kuò)充 linux 后臺(tái)運(yùn)行進(jìn)程的相關(guān)知識(shí),并明白 nohup 和 & 的區(qū)別。

查看完整回答
反對 回復(fù) 2019-03-18
?
慕仙森

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊

nohup php xxx.php > xxx.log &

查看完整回答
反對 回復(fù) 2019-03-18
?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊

CentOS 7使用systemd管理系統(tǒng)服務(wù),你需要花點(diǎn)時(shí)間去看看systemd的官方文檔

查看完整回答
反對 回復(fù) 2019-03-18
?
猛跑小豬

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊

不是很懂就別用編譯安裝應(yīng)用,如果不是編譯安裝的話。使用yum安裝,啟動(dòng)、停止都很簡單,還好用。

查看完整回答
反對 回復(fù) 2019-03-18
?
撒科打諢

TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊

當(dāng)然用Linux crontab

查看完整回答
反對 回復(fù) 2019-03-18
?
阿波羅的戰(zhàn)車

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊

linux crontab或者screen

查看完整回答
反對 回復(fù) 2019-03-18
  • 8 回答
  • 0 關(guān)注
  • 660 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)