google-sheet2Html

/*! * * Google Sheets To HTML v0.9a * * To use, simply replace the "tq?key=" value in the * URL below with your own unique Google document ID * * The Google document's sharing must be set to public * */ google.load('visualization', '1', { packages: ['table'] }); var visualization; function drawVisualization() { var query = new google.visualization.Query('https://spreadsheets.google.com/tq?key=https://docs.google.com/spreadsheets/d/1-vUEZ9tae5C_OXzSi0dQPWwUrO3H5S-gImB5afFgqDg/edit?usp=sharing'); query.setQuery('SELECT A, B, C, D label A "Duration", B "Song", C "Requested By", D "URL"'); query.send(handleQueryResponse); } function handleQueryResponse(response) { if (response.isError()) { alert('There was a problem with your query: ' + response.getMessage() + ' ' + response.getDetailedMessage()); return; } var data = response.getDataTable(); visualization = new google.visualization.Table(document.getElementById('table')); visualization.draw(data, { legend: 'bottom' }); } google.setOnLoadCallback(drawVisualization);

Wednesday, June 8, 2016

การกำหนดให้โปรแกรมทำงานทันทีหลังเปิดเครื่อง


การกำหนดให้โปรแกรมทำงานทันทีหลังเปิดเครื่อง



 ปรกติ administrator จะสามารถ แก้ไขขบวนการ bootstrap โดยการแก้ค่า config ของ startup script ซึ่งจะขออธิบาย การทำงาน ดังนี้
การทำงานของ Kernel initialization
เมื่อระบบเริ่มทำงานคือ จ่ายไฟให้ cpu จะมีการอ่านค่าจาก rom ซึ่งจะบรรจุคำสั่งให้ไปอ่านข้อมูลจากที่กำหนดไว้ในซึงอาจจะเป็น ฮาร์ดดิส หรือ เอสดีการ์ด ตามที่ต้องการมาเก็บไว้ในเมโมรี ขบวนการนี้ เรียกว่า บูทโหลดเดอร์ (boot loader) ข้อมูลที่อ่านมานี้เรียกว่า Kernel ซึ่งจะทำการตรวจสอบ หา พื้นที่ ram แล้ว จองส่วนหนึ่งไว้สำหรับ ตัว kernel เอง และพิมพ์รายงานว่ามีเมโมรีในระบบเท่าไร สำหรับ user process จากนั้นจะสำรวจ hardware ที่เชื่อมต่อกับระบบ โดยทำการ load driver ต่างๆ เพื่อให้สามารถสั่งงานและสื่อสารกับ hardware ขบวนการนี้เรียกว่า hardware configuration


เมื่อกำเนิด Kernel (เมล็ด) แล้ว จะมีการสร้าง ขบวนการที่เรียกว่า init (โดยการใช้ fork()) แตกกิ่งก้านสาขาออกมา ขบวนการ init จะเป็น parent ของทุก โพรเซส(process) หรืออีกนัยหนึ่ง กล่าวว่า init จะมี process ID 1 โดยที่ process init นี้จะทำงานตลอดเวลาจนกว่า จะปิดเครื่อง (แม้นแต่ superuser ก็ไม่สามารถ kill โพรเซสนี้ได้) เมื่อถึงขั้นนี้ startup script จะทำงาน เรียกโปรแกรม ต่างๆที่จะใช้เริ่มขบวนการ Daemon processes โดยปรกิตdaemon จะทำงานแบบ background โดยมาก daemon process มักถูกสร้างขึ้นในช่วงต้นของ system boot และจะทำงานจนกว่า ระบบ shut down (ถ้าไม่โดนสั่งปิด) การที่จะเรียกใช้ process ไหน ขึ้นกับค่า run levels (run levels คือระดับขั้นของการเรียกใช้งาน เช่น run leves 2 = single user , run level 3-5 = multi-user )
ในช่วงนี้เอง จะเกิดขบวนการ startup Files แบ่งได้ เป็น 3 ประเภท คือ
1 ขบวนการเริ่มกำเนิดของระบบSystem-wide startup files
2 ขบวนการ ล๊อกอินLogin initialization files
3 ขบวนการกำหนดเชลล์ Shell initialization files บางครั้งเรียกว่า environment files
บทความต่อจากนี้จะกล่าวเฉพาะ Bash ซึ่งเป็น เชลล์ที่ใช้ใน RPI (รายละเอียดตำแหน่งและชื่อของไฟล์ จะแตกต่างกันไปจาก Kron Shell (ksh) , C Shell, TC Shell) ขบวนการกำหนด System-wide จะทำการอ่าน startup files ที่ ตำแหน่ง
/etc/.profile (เครื่อหมาย จุด ที่อยู่หน้า profile เพราะ เป็น control hidden file เรียกดูด้วยคำสั่ง ls -l )

ขั้นตอนต่อจากนั้น bash จะทำการอ่าน ไฟล์ในไดเร็คทอรี home แล้วตรวจหาและทำงานตามสคริป อันใดอันหนึ่งที่พบก่อน เพียงไฟล์เดียว โดยหาตามลำดับดังนี้
.bash_profile
.bash_login
.profile
ในไฟล์ทีพบก่อน สคริปจะถูกอ่าน แล้วทำการ login initialization และเมื่อทำตามคำสั่งเสร็จแล้ว bash จะไปค้นหาใน ไดเร็คทอรี home เพื่อหา สคริปที่อยู่ใน
.bashrc
เพื่อทำงานตามคำสั่งที่อยู่ในสคริปที่พบ และกำหนด shell initialization ต่อไป


No comments:

Post a Comment