MoinMoin Logo
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Navigation

  • Start
  • Sitemap
Revision 17 as of 2016-09-08 10:49:26
  • FreeBSD

FreeBSD

FreeBSD is an advanced computer operating system used to power modern servers, desktops, and embedded platforms. http://www.freebsd.org

  • wget http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/10.3/FreeBSD-10.3-RELEASE-amd64-dvd1.iso

VirtualBox installation

  • Start VirtualBox

  • New
  • Name FreeBSD_10_3
  • Choose type BSD
  • version FreeBSD 64 bit
  • RAM 512 MB
  • Create virtual disk dynamic VDI with Fixed size 8 GB
  • Create
  • Start VM
  • Choose ISO FreeBSD-10.3-RELEASE-amd64-dvd1.iso
  • Start
  • option 1 multi boot
  • Install
  • keymap portuguese iso-8859-1 accent keys
  • continue with pt.iso.acc.kbd keymap
  • hostname: freebsd
  • Distribution select: all
  • Partitioning: auto
  • Partition: entire disk
  • Partition scheme: GPT guid partition table
  • Partition editor, finish, commit
  • root password: ********
  • Network config: em0
  • configure ipv4: yes
  • use dhcp: yes
  • configure ipv6: no
  • search: <empty>

  • ipv4 dns1: 8.8.8.8
  • ipv4 dns2: 8.8.4.4
  • is cmos clock set to utc: yes
  • region: europe
  • country: portugal mainland
  • services: sshd dumpdev
  • add users? yes
  • username: vitor
  • several enters
  • add other account: no
  • exit, apply config and exit installer
  • manual configuration? no
  • reboot
  • release ISO
  • login as root

df -h 
traceroute www.sapo.pt
pkg install wget 
# install package management tool ? yes 
proceed with action: yes 
pkg info 
cc --version 
# https://www.freebsd.org/doc/handbook/pkgng-intro.html
pkg search jdk 
pkg install openjdk8-8.92.14_3  #203 MB
# add lines to fstab ...
java -version 
pkg search python 
pkg install python27-2.7.12 # 67MB 
python2.7 --version 
pkg install mongodb-2.6.12 #203MB
pkg install rabbitmq-3.6.2 # 157MB
df -h # avail 3.2 GB
pkg install bash 
pkg install xorg
startx
pkg install windowmaker-0.95.7_2 # 262MB 
echo "exec /usr/local/bin/wmaker" > ~/.xinitrc
startx 

Get and burn ISO

  • wget http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/10.3/FreeBSD-10.3-RELEASE-amd64-dvd1.iso

  • modprobe sg # for cdrecord
  • cdrecord -scanbus #identify the device DVDRAM LG GP08NU6B
  • cdrecord -dev=6,0,0 -pad -data FreeBSD-10.3-RELEASE-amd64-dvd1.iso
  • # eject the DVD after burning
  • eject
  • cd /
  • mount /dev/sr0 /mnt/cdrom #check DVD
  • cd /mnt/cdrom/packages/FreeBSD:10:amd64/All

  • ls
  • ls -lah | wc -l # 1070 packages python gnome3 kde, qt, mysql, firefox, subversion, xorg, perl, gsl
  • cd /
  • umount /mnt/cdrom

Amazon AMI

  • https://aws.amazon.com/marketplace/pp/B00KSS55FY/

Info severity logging

  • add to /etc/rc.conf

syslogd_enable="YES"
  • touch /var/log/syslog
  • Add to /etc/syslog.conf

*.info /var/log/syslog

Example program

   1 #!/usr/bin/python
   2 import threading
   3 import time
   4 import os
   5 import syslog
   6 import datetime
   7 import sys 
   8 import signal
   9 
  10 def termHandler(signal,frame):
  11     print('Signal term caught')
  12     sys.exit(0)
  13     
  14 if __name__=="__main__":
  15     f=open('/var/run/beat.pid','wa')
  16     f.write('%d'%(os.getpid()))
  17     f.close()
  18     signal.signal(signal.SIGTERM,termHandler)    
  19     
  20     while True:
  21         syslog.syslog(syslog.LOG_INFO, "Beat %s"%(datetime.datetime.now()) )
  22         time.sleep(5)

Custom service

/home/vitor/beat.py

   1 #!/usr/bin/python
   2 import threading
   3 import time
   4 import os
   5 import syslog
   6 import datetime
   7 import sys 
   8 import signal
   9 
  10 def termHandler(signal,frame):
  11     print('Signal term caught')
  12     sys.exit(0)
  13     
  14 if __name__=="__main__":
  15     f=open('/var/run/beat.pid','wa')
  16     f.write('%d'%(os.getpid()))
  17     f.close()
  18     signal.signal(signal.SIGTERM,termHandler)    
  19     
  20     while True:
  21         syslog.syslog(syslog.LOG_INFO, "Beat %s"%(datetime.datetime.now()) )
  22         time.sleep(5)

In /etc/rc.conf

beat_enable="YES"

/etc/rc.d/beat

   1 #!/bin/sh
   2 
   3 # PROVIDE: beat
   4 
   5 . /etc/rc.subr
   6 
   7 name=beat
   8 rcvar=beat_enable
   9 command="/usr/local/bin/python2"
  10 command_args="/home/vitor/${name}.py &"
  11 
  12 load_rc_config $name
  13 
  14 run_rc_command "$1"

Give user permission to use su -

  • pw user mod userxyz -G wheel
  • su -

Bash

  • pkg install bash
  • chsh -s /usr/local/bin/bash vitor
  • chsh -s /usr/local/bin/bash root

~/.profile

#normal user
PS1="\e[0;33m\]\D{%Y-%m-%d}T\A\[\e[m\] \e[0;32m\]\u@\H:\w\r\n\$\[\e[m\] "

MongoDB

/etc/rc.conf

mongodb_enable="YES"

/etc/rc.d/mongodb

   1 #!/bin/sh
   2 
   3 # PROVIDE: mongodb
   4 
   5 . /etc/rc.subr
   6 
   7 name=mongodb
   8 rcvar=mongodb_enable
   9 pidfile="/var/run/mongodb.pid"
  10 command="/usr/local/bin/mongod"
  11 command_args="--pidfilepath=$pidfile --smallfiles --syslog &"
  12 
  13 load_rc_config $name
  14 
  15 run_rc_command "$1"
  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01