FreeBSD
FreeBSD is an advanced computer operating system used to power modern servers, desktops, and embedded platforms. http://www.freebsd.org
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
- 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
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
import threading import time import os import syslog import datetime import sys import signal def termHandler(signal,frame): print('Signal term caught') sys.exit(0) if __name__=="__main__": f=open('/var/run/beat.pid','wa') f.write('%d'%(os.getpid())) f.close() signal.signal(signal.SIGTERM,termHandler) while True: syslog.syslog(syslog.LOG_INFO, "Beat %s"%(datetime.datetime.now()) ) time.sleep(5)
In /etc/rc.conf
beat_enable="YES"
/etc/rc.d/beat
# PROVIDE: beat . /etc/rc.subr name=beat rcvar=beat_enable command="/usr/local/bin/python2" command_args="/home/vitor/${name}.py &" load_rc_config $name run_rc_command "$1"
Give user permission to use su -
- pw user mod userxyz -G wheel
- su -