一、使用kill命令結束進程
kill命令可以發送不同的信號給進程,讓進程做出不同的反應。其中,常用的信號有:
- SIGTERM(15):默認信號,可以被進程捕獲並進行清理工作
- SIGKILL(9):無法被進程捕獲,進程直接被殺死
結束進程的步驟如下:
- 使用ps命令找到要結束的進程的PID
- 使用kill命令結束進程
代碼如下:
# 查找進程的PID ps -ef | grep process_name # 發送SIGTERM信號結束進程 kill PID # 發送SIGKILL信號結束進程 kill -9 PID
二、重啟進程
進程重啟的步驟如下:
- 使用ps命令找到要重啟的進程的PID
- 使用kill命令結束進程
- 重新啟動進程
代碼如下:
# 查找進程的PID ps -ef | grep process_name # 發送SIGTERM信號結束進程 kill PID # 重新啟動進程(以flask應用為例) nohup python app.py > /dev/null 2>&1 &
三、使用systemd管理進程
systemd是Linux系統上用於管理系統進程的工具,可以方便地對進程進行啟動、停止、重啟、狀態查詢等操作。
使用systemd管理進程的步驟如下:
- 創建一個.service文件描述進程的啟動和停止方式
- 使用systemctl命令啟動、停止、重啟、查詢進程狀態等操作
示例代碼如下:
# 編輯/etc/systemd/system/process_name.service,並添加以下內容 [Unit] Description=Process description After=network.target [Service] User=process_user ExecStart=/usr/bin/python /path/to/app.py Restart=on-failure [Install] WantedBy=multi-user.target # 重新載入systemd配置文件 systemctl daemon-reload # 啟動進程 systemctl start process_name # 停止進程 systemctl stop process_name # 重啟進程 systemctl restart process_name # 查詢進程狀態 systemctl status process_name
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/286810.html