取得行程起始時間

更新 發佈閱讀 3 分鐘

在 Linux 系統中,設定 crontab 可以讓程式在某個時間點重跑。但要怎麼確定它真的在設定的時間重跑呢?

二個方法,我們先看困難的,再再看怎麼快速取得。

vocus|新世代的創作平台

困難的方法:從系統資訊裡找答案

/proc/[行程代碼]/stat 裡,有一些行程的相關資料。查一下 stat 的欄位文件,第 22 欄 starttime 就是程式執行的時間點。但是

  1. 它要除以時鐘周期 (clock ticks) sysconf(_SC_CLK_TCK) 的數值。
  2. 它的單位是 jiffies,不是 timestamp。也就是它是算自作業系統跑起來後,第幾個時鐘周期開始跑這支程式,這樣是很精確的時間點,但這表示我們要多花些工夫來轉換成現實時間。

所以我們要先查下系統的 _SC_CLK_TCK 是多少,在終端機中用 getconf 指令就可以確定。

getconf CLK_TCK

查出來數值是 100。用 cat /proc/[行程代碼]/stat 然後算一算第 22 欄的數字再除 100 也可以,但我們可以用較好的方式,例如用 awk 來剖析就不用拿筆對準螢幕一個個算到 22 欄。

awk '{print int($22 / 100)}' /proc/[行程代碼]/stat

該行的意思,是將 /proc/[行程代碼]/stat 的第 22 欄除 100 取整數。於是可以取得 starttime 的數據了,結果時間單位是秒。

接著,我們要確定作業系統跑了多久。這看 /proc/uptime 第一欄就行,單位是秒。

awk '{print int($1)}' /proc/uptime

就是無聊,不想再用 awk 指令,那用 cut 來切吧。要注意的是要取整數,於是用小數點當成分割標記。

cat /proc/uptime | cut -d '.' -f 1

然後要計算,公式如下:

現在時間 - (開機時間 - 程式執行時間)

現在時間的 timestamp 可以用 date 指令取得

date +%s

之後將上面的三個數字加加減減,就可以取得執行時的 timestamp,再用 date 將它轉成可讀時間

date -d timestamp

我們將這些寫成 shell script


用這方式就可以取得程式執行時間

./pidstarttime.sh 5566


簡單的方法:用指令取得答案

終端機用 ps 指令,加上 lstart 參數,就可以直接取得資料,不用管它是什麼 jiffies 除時脈變成秒。

ps -o lstart= -p [行程代碼]

補充:macOS 因為它沒有 /proc 的機制,所以只能用這個 ps 指令來做,這指令參數跟 Linux 完全相同。



參考資料

留言
avatar-img
WILSON PENG的沙龍
2會員
26內容數
WILSON PENG的沙龍的其他內容
2023/02/02
UTF-8 萬國碼在規格定義時,有建議在文件的開始處,加入位元組順序記號 (BOM, byte-order mark)。但 Plain Text 文件,就是全部都是文字,將它加入檔頭標記,就不是純文字檔案了,所以一般都沒有實作成有 BOM 檔頭的檔案。
Thumbnail
2023/02/02
UTF-8 萬國碼在規格定義時,有建議在文件的開始處,加入位元組順序記號 (BOM, byte-order mark)。但 Plain Text 文件,就是全部都是文字,將它加入檔頭標記,就不是純文字檔案了,所以一般都沒有實作成有 BOM 檔頭的檔案。
Thumbnail
2023/01/11
要怎麼判斷是奇數還是偶數? 除以 2 有餘數的是奇數,無餘數的是偶數。 有沒有更快的方法?
Thumbnail
2023/01/11
要怎麼判斷是奇數還是偶數? 除以 2 有餘數的是奇數,無餘數的是偶數。 有沒有更快的方法?
Thumbnail
2022/12/07
當使用 Wordpress 架站時,系統至少會有四層漏洞:
Thumbnail
2022/12/07
當使用 Wordpress 架站時,系統至少會有四層漏洞:
Thumbnail
看更多
你可能也想看
Thumbnail
對於新手來說,使用Fedora可能會有一些困難,比如找不到要延遲系統暫停時間如下圖,那要如何做呢?請繼續看下去。
Thumbnail
對於新手來說,使用Fedora可能會有一些困難,比如找不到要延遲系統暫停時間如下圖,那要如何做呢?請繼續看下去。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
用 Powershell 的 IDE ,寫一個在剪貼簿裡存 Timestamp 的無聊小程式。
Thumbnail
用 Powershell 的 IDE ,寫一個在剪貼簿裡存 Timestamp 的無聊小程式。
Thumbnail
排程 crontab 簡介 參考 : https://ubuntuqa.com/zh-tw/article/10392.html 設定一個定時啟動程序 簡介 常用 範例 其他設定介紹 排程更新 排程執行目錄 登入 root 查看 /var/log/cron 搜尋想找的程序名稱 , 會看到幾點有運行
Thumbnail
排程 crontab 簡介 參考 : https://ubuntuqa.com/zh-tw/article/10392.html 設定一個定時啟動程序 簡介 常用 範例 其他設定介紹 排程更新 排程執行目錄 登入 root 查看 /var/log/cron 搜尋想找的程序名稱 , 會看到幾點有運行
Thumbnail
我們在安裝程式的時候, 通常安裝包都會有進度條的顯示, 雖然那是GUI的部份, 但命令列是否也可以這樣呢? 答案是可以的, 在Python就有這麼一套工具專門在顯示我們程式運行的進度, 只要掌握如何回報進度、更新進度, 接下來渲染與互動的部份就交由tqdm這套件去處理即可。 這會對於我們在掌握
Thumbnail
我們在安裝程式的時候, 通常安裝包都會有進度條的顯示, 雖然那是GUI的部份, 但命令列是否也可以這樣呢? 答案是可以的, 在Python就有這麼一套工具專門在顯示我們程式運行的進度, 只要掌握如何回報進度、更新進度, 接下來渲染與互動的部份就交由tqdm這套件去處理即可。 這會對於我們在掌握
Thumbnail
在開發 C# 程式時,「時間處理」幾乎是一定會用到的功能,例如: 👉 顯示目前時間 👉 記錄日誌(Log) 👉 產生報表時間 👉 UI 顯示日期 這篇會帶你學會: ✔ 取得系統時間 ✔ 自訂時間格式 ✔ 常見實務用法
Thumbnail
在開發 C# 程式時,「時間處理」幾乎是一定會用到的功能,例如: 👉 顯示目前時間 👉 記錄日誌(Log) 👉 產生報表時間 👉 UI 顯示日期 這篇會帶你學會: ✔ 取得系統時間 ✔ 自訂時間格式 ✔ 常見實務用法
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
在 Linux 系統中,設定 crontab 可以讓程式在某個時間點重跑。但要怎麼確定它真的在設定的時間重跑呢?
Thumbnail
在 Linux 系統中,設定 crontab 可以讓程式在某個時間點重跑。但要怎麼確定它真的在設定的時間重跑呢?
Thumbnail
一直以來都是靠手動的方式來進行檔案的版本管理,也就是自己複製檔案,然後改檔名,加入可以識別的編號。不過,越來越覺得,有必要用版本控制系統來幫忙,因為手動的方式實在很累人,而且當需要查找以前更動的內容時,非常沒有效率。當發現Spyder也有支援Git時,就想著:「好吧!那就試用看看好了。」
Thumbnail
一直以來都是靠手動的方式來進行檔案的版本管理,也就是自己複製檔案,然後改檔名,加入可以識別的編號。不過,越來越覺得,有必要用版本控制系統來幫忙,因為手動的方式實在很累人,而且當需要查找以前更動的內容時,非常沒有效率。當發現Spyder也有支援Git時,就想著:「好吧!那就試用看看好了。」
Thumbnail
介紹 📷 定義 處理序(Process) (大陸:進程): 一個程序運行時,占用全部計算資源的總和 執行緒(Thread) (大陸:線程):是作業系統能夠進行運算排程的最小單位。 大部分情況下,它被包含在行程之中,是行程中的實際運作單位。 C#多線程和異步(一)——基本概念和使用方法 執行緒帶來的
Thumbnail
介紹 📷 定義 處理序(Process) (大陸:進程): 一個程序運行時,占用全部計算資源的總和 執行緒(Thread) (大陸:線程):是作業系統能夠進行運算排程的最小單位。 大部分情況下,它被包含在行程之中,是行程中的實際運作單位。 C#多線程和異步(一)——基本概念和使用方法 執行緒帶來的
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News